Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dziwne zachowanie AJAX w petli
Forum PHP.pl > Forum > XML, AJAX
lucks
plik zd.php pobiera zdjęcie, funkcja czekaj wstrzymuje wykonanie skryptu. CHodzi o to ze wysswietla sie cokolwiek dopiero kiedy skonczy sie wykonywać pętla, chciałbym uzyskac taki efekt ze po kazdym przebiegu pętli pojawia sie wartośc wypisz(obj.responseText, 'pliki');

Kod


function pobierz_zd(imax){
alert (imax);
  for(i=0;i<imax+1;i++){
   czekaj(1000);
      advAJAX.get({
        url: "zd.php",
        parameters : {
          "id" : i,
        },
        onSuccess : function(obj) {
         alert(i);
         wypisz(obj.responseText, 'pliki');
         },
        onError : function(obj) {
        alert("Error: " + obj.status);
        },
        
      });
  
    
    }
}
MadHatter
Hello,

Nie wiem czy to Ci pomoze i czy dobrze rozumiem wszystko, bo troche za malo kodu dales i dodam jeszcze ze pewnie jestem lamerem ale nie kozystam z gotowych klas... :)
Ale! Zazwyczaj sprawdzasz odpowiedz srwera odnosnie pobranych danych i dopier je zwracasz, w czasie kiedy serwer ciagle je pobiera-przetwarza, stosuje sie preloadery etc. Mysle wiec ze w Twom przypadku musialbys zmodyfikowac funkcje JavaScriptowa ustawiajac jej np: setTimeout i jakos zastosowac inkrementacje tak zeby wysylala osobno zapytania do skryptu php. Przykladowo jesli chcesz zeby php zwrocilo Ci tablice, ale zeby elementy byly zwracane pojedynczo kazdorazowo to JS wysyla zapytanie o pierwszy index->odpowiedz->wyswietla dane->zwieksza licznik i tak do momentu az wyswietli wszyskie indexy. Inaczej i mysle z tak dziala Twoj skrypt, pobiera cala tablice i dopiero wyswietla...
Oczywiscie pobieranie tablicy to tylko przyklad, ale jesli dobrze Cie rozumiem mam nadzieje ze dobrze obrazuje problem.
Pozdrawiam!
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.