2010-01-30 9 views
5

Gdy XMLHttpRequest otrzymuje błąd 0, oznacza to, że nie ma połączenia i większość czasu, po którym chcesz ponownie spróbować za jakiś czas.Błąd XMLHttpRequest 0 prawidłowe zarządzanie (ponów prośbę)

Czy istnieje prosty sposób przezroczystego ponowienia próby XMLHttpRequest powiadamiającego użytkownika o utracie połączenia (tak jak robi to Gmail)?

(używam jQuery)

+0

Poza umieszczeniem kodu połączenia w jego własnej funkcji i wywołaniu blokady po zmianie części DOM, aby poinformować użytkownika o braku połączenia? (Powiedziałbym to jako odpowiedź, ale czuję, że czegoś brakuje) –

+0

możliwy duplikat [Jak wysłać ponownie nieudane żądanie ajax?] (Http://stackoverflow.com/questions/8881614/how-do -i-ponowne żądanie-a-nie powiodło się żądanie ajax) – user2284570

Odpowiedz

11

Spójrz na to, co jesteś po: Defensive AJAX and AJAX retries in jQuery.

Zasadniczo w module obsługi błędów można zrobić $.ajax(this);

$.ajax({ 
    url : 'timeOutPage.html', 
    type : 'get', 
    timeout : 20000, 
    error : function(xhr, textStatus, errorThrown) { 
    if (textStatus == 'timeout') { 
     $.ajax(this); 
     return; 
    } 
    } 
}); 

prowadzi link artykuł ma przykład bardziej dogłębnej z limitem ponawiania, etc ... jak w większości jQuery, można niemal skopiować/wklej ich przykład, aby zacząć.

Powiązane problemy