2010-01-30 31 views
5

當XMLHttpRequest獲取錯誤0時,意味着沒有連接,並且大部分時間只是您想在一段時間內重試。XMLHttpRequest錯誤0正確管理(重試請求)

有沒有簡單的方法來透明地重試XMLHttpRequest通知用戶連接丟失(就像Gmail一樣)?

(我使用jQuery)這裏你以後

+0

將連接代碼放入其自己的函數並在更改DOM的某些部分以便讓用戶知道連接關閉後調用settimeout之外? (我把這作爲一個答案,但我覺得我失去了一些東西) –

+0

可能的重複[如何重新發送失敗的Ajax請求?](http://stackoverflow.com/questions/8881614/how-do -i-重發-A-失敗-AJAX請求) – user2284570

回答

11

看:Defensive AJAX and AJAX retries in jQuery

基本上在錯誤處理程序中,你可以做$.ajax(this);

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

鏈接的文章有一個更深入的例子有重試限制,等等。與大多數的jQuery,你幾乎可以複製/粘貼他們的例子來開始。