2017-07-27 81 views
0

我的網站上有一個長時間的聊天請求。該請求持續30秒,並在收到響應時再次被調用。Chrome - 刷新等待ajax請求的結束 - 長輪詢

當我刷新頁面(ctrl + R)時,chrome似乎要等到ajax調用結束,它可以持續高達29.99s。

我試圖綁定'unload'事件上的一個事件,但它在ajax調用結束後發送。

有沒有辦法說網絡客戶端「停止所有請求」,從而允許在幾秒鐘內正常刷新頁面。

+0

其實我忘了在長輪詢請求中寫'session_write_close()'。這個問題不是由於Chrome,而是由於服務器端崩潰,直到php會話被解鎖。 –

回答

0

您需要做的就是將您的ajax請求分配給一個變量,並在窗口onload事件中止它們。

var myAjax = $.ajax(...); 
window.onunload = function(){ 
if(typeof myAjax!=='undefined') { 
    myAjax.abort(); 
} 
} 
+0

''onunload'在ajax調用結束後觸發,正如我在文章中指定的那樣。它不起作用。 –

+0

事實上,當完成對下一頁的請求時,不會觸發onunload。 –