Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][JQUERY] Jeśli odpowiedź trwa dłużej niż 2 sekundy
ZenekN
post 12.04.2016, 10:25:22
Post #1





Grupa: Zarejestrowani
Postów: 418
Pomógł: 5
Dołączył: 7.08.2012

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


Witam w jaki sposób rozwiązać taki problem.

Jeśli odpowiedź trwa dłużej niż 2 sekundy wyświetl alert
Go to the top of the page
+Quote Post
rad11
post 12.04.2016, 10:26:48
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


http://stackoverflow.com/questions/5225597...for-ajax-jquery
Go to the top of the page
+Quote Post
trueblue
post 12.04.2016, 10:28:05
Post #3





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Za pomocą dokumentacji.
http://api.jquery.com/jquery.ajax/ właściwość timeout.


--------------------
Go to the top of the page
+Quote Post
kayman
post 12.04.2016, 10:31:13
Post #4





Grupa: Zarejestrowani
Postów: 556
Pomógł: 40
Dołączył: 20.07.2012
Skąd: Warszawa

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


alert na setTimeout i jak wróci wcześniej niż 2s to resetujesz przez clearTimeout
Go to the top of the page
+Quote Post
ZenekN
post 7.12.2016, 21:07:10
Post #5





Grupa: Zarejestrowani
Postów: 418
Pomógł: 5
Dołączył: 7.08.2012

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


Próbuje to jakoś ogarnąć i nie daje rady

jeśli dostaje fail w ajaxie to już nie dostaje done
Go to the top of the page
+Quote Post
viking
post 7.12.2016, 21:34:37
Post #6





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


https://api.jquery.com/deferred.always/


--------------------
Go to the top of the page
+Quote Post
ZenekN
post 8.12.2016, 16:56:01
Post #7





Grupa: Zarejestrowani
Postów: 418
Pomógł: 5
Dołączył: 7.08.2012

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


nie dostaje w
Cytat
.always
parametru data

  1. .done(function (data) {
  2. $('.body-top').show();
  3. $('.body-top').html(data);
  4.  
  5. }).fail(function (xhr, statusText) {
  6. $('.body-top').show();
  7. $('.body-top').html('<div style="text-align:center;"><img src="http://strona.pl/img/loading.gif"></div>');
  8.  
  9. }).always(function(data) {
  10. $('.body-top').show();
  11. $('.body-top').html(data);
  12. });


Ten post edytował ZenekN 8.12.2016, 16:57:14
Go to the top of the page
+Quote Post
viking
post 8.12.2016, 17:09:32
Post #8





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Więc pewnie żądanie jest fail. Czytałeś w dokumentacji co zwraca?


--------------------
Go to the top of the page
+Quote Post
ZenekN
post 8.12.2016, 21:03:30
Post #9





Grupa: Zarejestrowani
Postów: 418
Pomógł: 5
Dołączył: 7.08.2012

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


na allegro jest tak że jeśli pierwszy raz kliknę w produkt to pokaże się preloader a potem strona, natomiast jeśli jeszcze raz szybko przeładuję stronę, załaduje się strona bez preloadera, jeśli chwile odczekam i przeładuje ponownie pokaże się preloader a potem zawartość strony.

@viking, zrobiłem to inaczej, po prostu wysłałem ponownie $.post w fail poprzedzone timeout oneeyedsmiley02.png

  1. timeout: 1000
  2. ....
  3.  
  4. .done(function (data) {
  5. $('.body-top').show();
  6. $('.body-top').html(data);
  7.  
  8. }).fail(function (xhr, statusText) {
  9. $('.body-top').show();
  10. $('.body-top').html('<div style="text-align:center;"><img src="http://strona.pl/img/loading.gif"></div>');
  11.  
  12. $.post();
  13.  
  14. })


dzięki za naprowadzenie

Ten post edytował ZenekN 8.12.2016, 21:06:17
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: 23.04.2024 - 17:18