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