【发布时间】:2011-09-25 15:06:40
【问题描述】:
我已经阅读了几十个关于 SO 的问题和答案,但没有一个回答我的特定问题......其中大多数都围绕着弹出“哦,你需要保存”消息......这不是我的需要。
我正在我的办公室(不是公共网站)构建一个供内部使用的应用程序,特别是一个“页面”我们希望记录用户的“退出”。
所以,我有这个简单的声明:
window.onbeforeunload = function () {
$.post('LogExit.aspx');
}
现在,这个post 大部分时间都会失败,因为浏览器不“想要”开始一个新请求,因为它知道页面正在消失......但是,如果我添加一个烦人的alert框,那么它将 100% 的时间发送 ping !!!
例子:
window.onbeforeunload = function () {
$.post('LogExit.aspx');
alert("Ha ha ha, I can delay the browser!");
}
所以,我的问题是……我如何确保(或至少增加获得)“LogExit.aspx”ping 的机会?
【问题讨论】:
-
我不相信这是可能的。我认为一个常见的策略是使用
window.open打开另一个发送请求并自行关闭的窗口,但弹出窗口阻止程序会阻止它。也许您可以尝试发送一个同步的 Ajax 请求...?
标签: javascript ajax cross-browser fire-and-forget