我想在用户从当前页面导航时向服务器发布一条消息,我现在正在使用 .unload 但结果不可靠,即使在其文档中说是真的:
unload 事件的确切处理因浏览器版本而异。例如,某些版本的 Firefox 会在点击链接时触发该事件,但不会在窗口关闭时触发。在实际使用中,应该在所有支持的浏览器上测试行为,并与专有的 beforeunload 事件进行对比。
我应该使用 beforeunload 事件吗?它可靠吗?
我想在用户从当前页面导航时向服务器发布一条消息,我现在正在使用 .unload 但结果不可靠,即使在其文档中说是真的:
unload 事件的确切处理因浏览器版本而异。例如,某些版本的 Firefox 会在点击链接时触发该事件,但不会在窗口关闭时触发。在实际使用中,应该在所有支持的浏览器上测试行为,并与专有的 beforeunload 事件进行对比。
我应该使用 beforeunload 事件吗?它可靠吗?
是的,beforeunload更可靠,但一定要直接赋值(不通过jQuery绑定),像这样:
window.onbeforeunload = function() { /* do stuff */ };
该unload事件本身并不意味着要完成的工作,对象只是清理......作为垃圾收集器变得越来越好,还有一个供浏览器,甚至解雇的原因不太unload事件。
还要注意,对于您的特定情况,您必须向服务器发出同步请求……否则浏览器仍然不会等待 AJAX 调用完成。