Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> AJAX, potrzebuje oczekiwać na przesyłkę danych?
adam_krk
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.07.2009

Ostrzeżenie: (0%)
-----


Czy jest możliwe, że dane na lokalnym serwerze między kodem js a php są przesyłane szybciej niż na koncie hostingowym?

Napisałem skrypt do zapisu opinii (coś a'la księgę gości') bez przeładowania, w jednym pliku.
Problem w tym, że lokalnie kod działał, na serwerze już nie chciał.
Dodanie pętli for jak poniżej rozwiązało problem.
Ale nie wiem dlaczego....

(XMLHttpRequestObject to obiekt zwrócony przez XMLHttpRequest() albo ActiveXObject)
  1. ...
  2. XMLHttpRequestObject.onreadystatechange = function()
  3. {
  4.    for(i=0; i<200000; i++);
  5.    if(XMLHttpRequestObject.readyState==4)
  6.       {
  7. ...


Co ciekawsze przy linijce
for(i=0; i<100000; i++);
kod na serwerze działał 'czasem'...

Ten post edytował adam_krk 29.07.2009, 12:58:57
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Cytat
Czy jest możliwe, że dane na lokalnym serwerze między kodem js a php są przesyłane szybciej niż na koncie hostingowym?

A czy jest mozliwe ze do twojej lodowki idziesz szybciej niz do najblizszego sklepu spozywczego?

Wez uzyj jakiejs biblioteki do ajaxa - jQuery, prototype, itd. - dzieki nim napiszesz to szybciej, pewniej i bedzie dzialalo na kazdej przegladarce.
Podajesz wtedy funkcje ktora ma sie wykonac PO POPRAWNYM rzadaniu ajaxowym i juz, dziala.
Go to the top of the page
+Quote Post
adam_krk
post
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 25.07.2009

Ostrzeżenie: (0%)
-----


Więc po co sprawdzanie readyState i status jeśli to nie zatrzymuje skryptu do czasu ściągnięcia całości komunikatu?
Go to the top of the page
+Quote Post
sowiq
post
Post #4





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(adam_krk @ 29.07.2009, 14:02:07 ) *
Więc po co sprawdzanie readyState i status jeśli to nie zatrzymuje skryptu do czasu ściągnięcia całości komunikatu?
AJAX działa asynchronicznie, więc kod nie wykonuje się linijka po linijce.

Używa się tego mniej-więcej tak:
Kod
var ajax = createAjax(); // ta funkcja zwraca obiekt zależny od przeglądarki
ajax.onreadystatechange = function(){
    if(ajax.readyState == 4 && ajax.status == 200) {
        alert('się pobrało');
    }
}


~dr_bonzo ma oczywiście rację - dużo łatwiej korzysta się z gotowych bibliotek, ale nie zwalnia to ze znajomości podstaw używanej technologii...

Ten post edytował sowiq 29.07.2009, 13:10:00
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 19:50