簡體   English   中英

停止瀏覽器請求

[英]Stop browser requests

單擊刷新按鈕時,是否可以停止頁面上發生的所有請求/腳本?
我有一個需要幾分鍾的$ .ajax請求。 我試圖在unload事件中執行window.stop(); 我已經嘗試過xhr = $ .ajax(...); 和xhr.abort(); 以及在互聯網上找到的任何其他方法,沒有任何效果。

這有可能嗎? 為什么瀏覽器仍然等待該請求完成並發送回響應,而不刷新頁面?


稍后編輯(已解決):似乎等待的問題實際上來自服務器 如果在ajax調用中,腳本使用SESSION,則即使我們中止xhr,網頁也將凍結直到請求完成。

這是為什么? 說明:

會話數據通常在腳本終止后存儲,而無需調用session_write_close(),但是由於會話數據被鎖定以防止並發寫入,因此任何時候任何會話都只能對一個腳本進行操作。 將框架集與會話一起使用時,由於此鎖定,您將體驗到框架逐一加載的情況。 完成對會話變量的所有更改后,您可以通過結束會話來減少加載所有幀所需的時間。

也許像在這里一樣嘗試在刷新之前取消?

window.onbeforeunload = function(event) {
    xhr.abort();
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM