当用户关闭浏览器或关闭窗口时,我正在尝试向我的服务器发送帖子。
这是我到目前为止所做的:
$(window).unload(function(){
$.post('/offline', {account_id: ACCOUNT_ID});
});
但是,当用户在当前窗口中输入新网址时,这似乎才有效。
除了用户在窗口中输入新网址外,我还需要在浏览器或窗口关闭时向服务器发送帖子。
任何人都知道问题是什么?
谢谢。
更新
我认为上面的javascript对我有用,但是,对于网站上的每个事件都会发生这种情况。例如,单击链接。
如果用户输入新网址或关闭窗口,是否可以仅触发此操作?
答案 0 :(得分:1)
问题是,当浏览器关闭时,您可以使用非常有限的方法来中断该操作。有很多原因导致这样的事件无法捕获 - 比如他们失去了电力或网络连接 - 你的帖子永远不会有效。我建议你重新考虑一下你需要捕捉这个问题,并解决你试图以不同方式解决的问题。
答案 1 :(得分:0)
你可以使用
$(window).bind("beforeunload", function()
答案 2 :(得分:0)
window.onbeforeunload = function (e) {
var message = "Your confirmation message goes here.",
e = e || window.event;
// For IE and Firefox
if (e) {
e.returnValue = message;
}
// For Safari
return message;
};
答案 3 :(得分:0)
这种方法不起作用,因为当浏览器关闭时,您的持续请求将被中断。
相反,您应该定义一个setInterval方法,在该方法中,您将在特定时间间隔后继续ping服务器,并且在服务器端,如果您在特定时间内没有收到ping,则用户将被视为已注销。