Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AJAX, potrzebuje oczekiwać na przesyłkę danych?
Forum PHP.pl > Forum > XML, AJAX
adam_krk
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'...
dr_bonzo
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.
adam_krk
Więc po co sprawdzanie readyState i status jeśli to nie zatrzymuje skryptu do czasu ściągnięcia całości komunikatu?
sowiq
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...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.