2010-12-07 113 views
37

我要發佈的消息,到服務器時用戶從當前頁面導航了,我使用的.unload權利,但現在的結果是不可靠的,即使在其文件中說真:jquery:卸載或beforeunload?

確切的處理的卸載事件 已經從版本到版本 瀏覽器變化。例如,Firefox的某些版本 會在遵循鏈接 時觸發事件,但在 窗口關閉時不會觸發事件。在實際使用中,應在所有支持的瀏覽器上測試 行爲,並使用專有的beforeunload 事件對比 。

我應該使用beforeunload事件嗎?它可靠嗎?

+1

僅供參考:卸載已棄用,https://api.jquery.com/unload/ – 2017-05-11 07:38:11

回答

55

是,beforeunload是更可靠的,但一定要直接(通過jQuery的不綁定)分配給它,就像這樣:

window.onbeforeunload = function() { /* do stuff */ }; 

unload事件本身並不意味着對要做的工作,只清理對象......隨着垃圾收集器變得越來越好,瀏覽器甚至沒有理由會觸發事件unload

另外請注意,對於您的特定情況,您必須向服務器發出同步請求,否則瀏覽器仍然不會等待AJAX​​調用完成。

+1

window.onbeforeunload是否在所有瀏覽器(例如IE6)上觸發? – Kangkan 2010-12-07 12:34:24