在浏览器关闭时运行ajax请求



我正在一个网站上工作,目前遇到了一个问题,我有一个用户,当他来到我的网站时,他将是一名骑手,他必须被标记为活动,当他离开时,他必须标记为活动。好吧,我可以标记他活跃,甚至在他正确注销时处于活跃状态。但如果他关闭浏览器或标签会怎么样。其次,我的网络应用程序将主要在手机上运行,所以如果骑手在浏览器和其他应用程序之间切换会怎么样。我已经试过了

window.onbeforeunload = function(event) {
//My Ajax Request
});
window.addEventListener("unload", function(event) {
//My Ajax Request
});

但它在firefox上运行良好,但有时只在chrome和internetexplorer上运行,而且不可靠。

我希望有人能指导我找到更好、可靠的方法。

尝试以下方法:

window.addEventListener("beforeunload", function(event) {
//My Ajax Request
});
window.attachEvent("beforeunload", function(event) {
//My Ajax Request
});

另外,在执行AJAX请求之前,请使用event.prventDefault((。

unload和beforeunload对于Ajax请求来说是不可靠的。您可以选择短轮询-向服务器发送关于用户处于活动状态的指示(例如,每x秒/分钟(。基于此将用户标记为活动/非活动。

用于在选项卡/移动应用程序之间切换。您可以使用windowsblur事件来指示相同的情况。

最新更新