2010-12-07 78 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