我想在用户离开当前页面时向服务器发送消息,目前我正在使用 .unload,但结果并不可靠,尽管其文档中说是这样的:
从浏览器版本到版本的确切处理卸载事件有所不同。例如,某些 Firefox 版本会在跟随链接时触发事件,但关闭窗口时则不会。在实际使用中,行为应在所有支持的浏览器上进行测试,并与专有的 beforeunload 事件进行对比。
我应该使用 beforeunload 事件吗?它可靠吗?
我想在用户离开当前页面时向服务器发送消息,目前我正在使用 .unload,但结果并不可靠,尽管其文档中说是这样的:
从浏览器版本到版本的确切处理卸载事件有所不同。例如,某些 Firefox 版本会在跟随链接时触发事件,但关闭窗口时则不会。在实际使用中,行为应在所有支持的浏览器上进行测试,并与专有的 beforeunload 事件进行对比。
我应该使用 beforeunload 事件吗?它可靠吗?
是的,beforeunload
更加可靠,但一定要直接分配它(不通过jQuery绑定),像这样:
window.onbeforeunload = function() { /* do stuff */ };
unload
事件本身并不是为了处理工作,只用于清理对象...随着垃圾收集器变得越来越好,浏览器甚至不再需要触发unload
事件。
还要注意,在您的特定情况下,您需要向服务器发出同步请求...否则,浏览器仍然不会等待AJAX调用完成。