Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ajax - kolejność wykonywania zapytań
morthan
post 11.04.2014, 16:10:11
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

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


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.

Ten post edytował morthan 11.04.2014, 16:19:35
Go to the top of the page
+Quote Post
trueblue
post 11.04.2014, 16:35:27
Post #2





Grupa: Zarejestrowani
Postów: 5 438
Pomógł: 1489
Dołączył: 11.03.2014

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


Pokaż kod gdzie wywołujesz Ajax.


--------------------
Go to the top of the page
+Quote Post
morthan
post 14.04.2014, 08:24:36
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

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


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.

Ten post edytował morthan 14.04.2014, 08:39:46
Go to the top of the page
+Quote Post
#luq
post 14.04.2014, 18:17:12
Post #4





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


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?


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
trueblue
post 14.04.2014, 18:34:38
Post #5





Grupa: Zarejestrowani
Postów: 5 438
Pomógł: 1489
Dołączył: 11.03.2014

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


Tyle, że właśnie koledze idą/odpowiadają w kolejności.

Ten post edytował trueblue 14.04.2014, 18:34:59


--------------------
Go to the top of the page
+Quote Post
#luq
post 15.04.2014, 12:06:44
Post #6





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


Tak, rozumiem.
Tyle, że normalnie być tak nie powinno, więc prawdopodobnie requesty przechodzą przez jakąś warstwę która symuluje takie zachowanie.


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2019 - 21:30