jquery:unload还是beforeunload?

时间:2010-12-07 12:30:49

标签: javascript jquery

我想在用户离开当前页面时向服务器发布消息,我现在正在使用.unload但结果不可靠,即使在其文档中也是如此:

  

卸载事件的确切处理   因版本而异   浏览器。例如,某些版本   当一个Firefox触发事件时   链接是遵循,但不是时   窗户关闭了。在实际使用中,   应对所有行为进行测试   支持的浏览器,并对比   使用专有的beforeunload   事件

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

1 个答案:

答案 0 :(得分:60)

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

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

unload事件本身不是为了完成工作,只是清理对象......随着垃圾收集器变得越来越好,浏览器甚至没有理由激活{{1}事件。

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