Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ajax - kolejność wykonywania zapytań
Forum PHP.pl > Forum > XML, AJAX
morthan
Witam,

naświetli mi ktoś sprawę jak zachowuje się Ajax przy wielu requestach równocześnie?
Dokładniej, mam stronę z ukrytymi zakładkami. Użytkownik wypełnia pierwszą. W odpowiedzi na jego wybory pobieram dane ajax-em. Wciska dalej, następuje znowu pobranie danych, dodatkowo walidacja, i na koniec przełączenie na następną zakładkę.
Problem polega na tym, że pierwsze pobranie danych korzysta z SOAP i trochę trwa. No i blokuje mi to całego JS-a.


EDIT:
Ogólenie zapytania wykonują się jedno po drugim a, nie równocześnie i ostanie musi czekać na pierwsze.


Co jest tego przyczyną?
Czy ewentualna kolejka FIFO na obsługę requestów po stronie serwera (bo wszystkie zapytania idą do jednego serwera)?
Czy przeglądarka obsługuje zdarzenia w FIFO?
Jakiś pomysł, idea, wiedza, konkretne rowiązanie?

Z góry dziękuję za pomoc.
trueblue
Pokaż kod gdzie wywołujesz Ajax.
morthan
Ajax jest standardowy:

  1. $.ajax({
  2. type: "POST",
  3. url: baseUrl + dataUrl,
  4. cache: false,
  5. data: $("form").serialize(),
  6. global: false,
  7. timeout: 30000,
  8. dataType: "json"
  9. }).done(function(response) {
  10.  
  11. }).error(function(response) {
  12.  
  13. });


i druga:

  1. $.ajax({
  2. type: "POST",
  3. url: baseUrl + dataUrl2,
  4. cache: false,
  5. data: $("form").serialize(),
  6. dataType: "json"
  7. }).done(function(response) {
  8.  
  9. }).fail(function(jqXHR, textStatus) {
  10. });

Wywoływane są w kolejności w jakiej je umieściłem powyżej.
#luq
Normalnie requesty ajaxowe są przesyłane niezależnie od siebie, możesz sobie napisać obiekt kolejki przez który będą przechodzić requesty i wtedy będziesz miał pewność że coś co zostało wysłane jako pierwsze, pierwsze też zwróci rezultat. "Goły ajax" tak nie działa.

Masz to gdzieś online?
trueblue
Tyle, że właśnie koledze idą/odpowiadają w kolejności.
#luq
Tak, rozumiem.
Tyle, że normalnie być tak nie powinno, więc prawdopodobnie requesty przechodzą przez jakąś warstwę która symuluje takie zachowanie.
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.