我之前刚刚阅读how to check users leave a page,当用户离开页面将分析数据发送回服务器时突然想到执行AJAX。
在onunload
事件上执行AJAX是一个好的还是坏的练习/实现?
答案 0 :(得分:4)
在卸载时执行AJAX调用在所有情况下都不能很好地工作。通常,Web浏览器几乎立即关闭面板,AJAX调用可能会丢失。
如果您想发送分析数据,我建议您在关闭页面的提前中发送它们。例如,在5秒后发送,10秒,20秒等。使用唯一标识符查找最新信息。根据您需要的精确测量精度,间隔取决于您,而不是为用户增加额外带宽而烦恼: - )
答案 1 :(得分:1)
要获得任何可靠的数据形式,您需要暂停操作直到ajax帖子通过 - 页面通常会在此之前终止。
在所有现实中,没有办法检测用户离开页面的每一种方式,onunload,如果它不够快,将被中断。
答案 2 :(得分:0)
我认为你最终会处于竞争状态
如果你产生另一个线程,那么执行AJAX调用的人将被销毁并且页面将被卸载(因为页面正在等待此线程完成)
无论如何,在我看来,应该不惜一切代价避免卸载事件!除非事情在过去几年发生了变化......我告诉自己永远不要再这样做了:P
祝你好运