2011-06-04 56 views
8

這個問題就像 another,不同之處在於在JQuery的上下文中詢問了一個問題,我不使用它。如何正確取消將永遠不會完成的未完成的Ajax請求?

my page上的Ajax代碼每十秒發​​出一次POST。偶爾 - 每~600個請求 - 我的客戶端代碼掛起,等待一個永遠不會顯示的響應。

代碼將超時並重新發出Ajax請求,但首先我要清理關於未完成請求的所有內容:我不想留下任何殘留狀態,以便稍後處理。

什麼是正確的方式來取消未完成的請求,使事情得到適當整理?

謝謝!

回答

5

存儲您最後一次AJAX請求的引用,並在您開始下一個AJAX請求時存儲引用abort

例如:

var lastRequest; 

setInterval(function() { 
    lastRequest.abort(); // abort the last request 

    lastRequest = new XMLHTTPRequest(); // and the rest of your XHR code 
}, 10000);