我试图弄清楚unload事件的工作方式。当用户移动到另一个页面时,我正在使用$(window).unload()
处理程序将多个自定义值的列表发送到我的分析服务。我针对每个值对服务进行单独的API调用。
我只是想知道我是否可以依靠我的处理程序每次运行直到完成,还是在某些情况下加载下一页JavaScript会中断它,然后才能在列表中注册所有值。
.unload()上的jQuery documentation表示“无法使用.preventDefault()取消卸载事件。”对我来说,这意味着浏览器开始执行您的卸载处理程序后,无法阻止它加载,解析和执行新页面的JS。
但是window.onunload
事件上的MDN page表示“发生卸载事件后,将处理资源删除。”
那么,这是否意味着浏览器会运行页面的卸载功能直到完成,然后才将其抓取以加载下一页的JS?
最佳答案
MDN似乎在其站点中具有多个版本。 Here's another one about unload which describes the state of the document during unload.
据我所知,异步请求(ajax)可能会被触发,但不能保证它们会到达服务器甚至离开浏览器。
在带有您的标记(分析)之一的上下文中,您似乎想知道用户何时离开页面。
unload
中执行。下次您的脚本遇到Cookie时,请对其进行解析以获取暂挂数据,然后将其发送到服务器。关于javascript - 是否可以保证卸载事件处理程序在下一页加载清除之前完成执行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21986979/