Javascript jquery:卸载还是在卸载之前?

Javascript jquery:卸载还是在卸载之前?,javascript,jquery,Javascript,Jquery,当用户从当前页面导航离开时,我想向服务器发送一条消息,我正在使用。立即卸载,但结果不可靠,即使在其文档中也是如此: 卸载事件的精确处理 不同版本的 浏览器。例如,某些版本 当 链接被跟随,但当 窗户关上了。在实际使用中,, 行为应该在所有人身上进行测试 支持的浏览器,对比 在卸载之前使用专有的 事件 我应该使用beforeunload事件吗?它可靠吗?是的,beforeunload更可靠,但请确保直接分配它(不通过jQuery绑定),如下所示: window.onbeforeunload = f

当用户从当前页面导航离开时,我想向服务器发送一条消息,我正在使用。立即卸载,但结果不可靠,即使在其文档中也是如此:

卸载事件的精确处理 不同版本的 浏览器。例如,某些版本 当 链接被跟随,但当 窗户关上了。在实际使用中,, 行为应该在所有人身上进行测试 支持的浏览器,对比 在卸载之前使用专有的 事件


我应该使用beforeunload事件吗?它可靠吗?

是的,
beforeunload
更可靠,但请确保直接分配它(不通过jQuery绑定),如下所示:

window.onbeforeunload = function() { /* do stuff */ };
unload
事件本身并不是为了完成工作,只是为了清理对象……随着垃圾收集器越来越好,浏览器甚至没有理由触发
unload
事件


还要注意,对于您的特定情况,您必须向服务器发出同步请求……否则浏览器仍然不会等待AJAX调用完成。

window.onbeforeunload是否会在所有浏览器(比如IE6)上启动?@Kangkan-yup,虽然一些更邪恶的广告块会阻止这种情况……但它们非常罕见。@Nick Craver-为什么不通过jQuery绑定它呢?是不是不太可靠?不是通过jQuery?如果跨浏览器对本机函数的支持良好,那么某种参考可能会很好,否则这只是jQuery文档本身所说的优先使用本机JavaScript而不是jQuery。一个原因是本机函数内置在浏览器中,因此比jQuery库函数快得多。仅供参考:unload不推荐使用,