在浏览器关闭事件中,我试图从 JavaScript 调用服务器端方法,以进行一些数据库表更改。我在 JavaScript 的“onbeforeunload”事件中执行此操作。
大多数时候,它成功地调用了服务器端代码并实现了预期的数据库表更改* 。但有时,服务器端事件不会被调用。*
有没有人有任何类似要求的经验,或者能够就我们如何确保服务器端事件始终被调用而不会失败向我们提供任何建议?
在浏览器关闭事件中,我试图从 JavaScript 调用服务器端方法,以进行一些数据库表更改。我在 JavaScript 的“onbeforeunload”事件中执行此操作。
大多数时候,它成功地调用了服务器端代码并实现了预期的数据库表更改* 。但有时,服务器端事件不会被调用。*
有没有人有任何类似要求的经验,或者能够就我们如何确保服务器端事件始终被调用而不会失败向我们提供任何建议?
啊哈,不久前我们遇到了其中一个问题,我们绝对需要向服务器通知窗口已关闭。我们注意到只有 Firefox 会服从内部发出的请求onbeforeunload
。最后,解决方案如下:
$(window).unload(function () {
$.ajax ({
url: "...",
data: "(what you want to send)",
async: false // THIS
});
});
更奇怪的是,它既不为我们工作,window.onunload
也不window.onbeforeunload
为我们工作。至少不是那时。