jquery:卸载或beforeunload?
当用户从当前页面浏览时,我想发布消息到服务器,我现在使用.unload,但结果是不可靠的,即使在它的文档中也是如此:
卸载事件的确切处理因浏览器的版本而异。 例如,某些版本的Firefox在遵循链接时会触发事件,而在窗口closures时则不会。 在实际使用中,应该在所有支持的浏览器上testing行为,并与专有的beforeunload事件进行对比。
我应该使用beforeunload事件吗? 它可靠吗?
是的,在beforeunload
是比较可靠的,但一定要直接分配(不通过jQuery),如下所示:
window.onbeforeunload = function() { /* do stuff */ };
unload
事件本身并不意味着要完成工作,只需要清理对象……随着垃圾收集器越来越好,浏览器甚至无法启动unload
事件。
另外请注意,对于您的特定情况,您必须向服务器发出同步请求,否则浏览器仍然不会等待AJAX调用完成。