我已经在SO上阅读了几十个问题和答案,但没有一个能回答我的特定问题...他们中的大多数都围着弹出一个“哦,你需要保存”的信息...这不是我的需要。
我正在办公室(不是公共网站)建立内部使用的应用程序,特别是一个“页面”我们想要记录用户的“退出”。
所以,我有这个简单的陈述:
window.onbeforeunload = function () {
$.post('LogExit.aspx');
}
现在,由于浏览器“不想”启动新请求,因此post
大部分时间都会失败,因为它知道该页面正在消失...但是,如果我添加一个烦人的{ {1}}框,然后它将100%的时间发送ping !!!
示例:
alert
所以,我的问题是......我如何确保(或至少增加“LogExit.aspx”ping通过的机会?
答案 0 :(得分:1)
由于您必须提出某种请求并且并不真正关心响应,因此在这种情况下您可以使用图像:
window.onbeforeunload = function () {
var img= new Image();
img.src = "LogExit.aspx";
// you have to check on your server to see if it worked :)
}
答案 1 :(得分:0)
不幸的是,没有100%,甚至10%“保证”的方式来实现这一目标......因此,我能够通过every-10-seconds-send-a-ping
功能来解决我的特殊需求。
由于我需要记录一个人查看特定页面的时间长度,因此上述解决方案有助于至少将其缩短到10秒的精确度窗口。
我真的希望将来会有一个更好的解决方案。