[英]JavaScript question: Onbeforeunload or Onunload?
因此,當刷新頁面或用戶退出頁面以供將來使用時,我想在瀏覽器的localstorage中存儲一些信息。 我想我會使用一些Javascript來檢測事件並存儲頁面訪問的狀態。
現在我的困境是:我應該使用Onbeforeunload或Onunload方法來實現這個目標嗎?
謝謝
為什么不注冊它只是為了安全起見? 只需讓監聽器檢查數據是否已存儲並提前退出。
這是使用事件屬性的快速示例:
window.onunload = window.onbeforeunload = (function(){
var didMyThingYet=false;
return function(){
if (didMyThingYet) return;
didMyThingYet=true;
// do your thing here...
}
}());
或者您可以使用attachEvent:
(function(){
var didMyThingYet=false;
function listener (){
if (didMyThingYet) return;
didMyThingYet=true;
// do your thing here...
}
window.attachEvent("onbeforeunload", listener);
window.attachEvent("onunload", listener);
}());
適當的地方是onunload。 onbeforenload意味着在您可能需要阻止用戶離開頁面時使用,例如當存在未保存的數據時。
我會厭倦編寫代碼來涵蓋所有案例,因為你不願意測試所有案例。 如果您進行研究並發現它在瀏覽器中過於復雜,是的,請繼續並盡可能多地做。 但是,我相信在onunload上進行本地存儲沒有問題。 我確實遇到了一個問題,試圖將信息發送到服務器onunload。 這在瀏覽器中並沒有可靠地發生,所以我最終得到的方法是使用卸載和beforeunload,但只是在盡職調查之后。
所以我的建議是onunload,檢查所有的瀏覽器。
我相信Onbeforeunload是一個安全的賭注。 瀏覽器可能無法完全執行onunload腳本 - 例如,如果onunload中有警報,則關閉窗口時不會顯示chrome。
根據我的經驗:使用onunload
因為Opera不支持其他事件。 是的,我知道...... 歌劇 ...但仍然:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.