我正在尝试阻止页面的卸载事件,直到我从服务器获得客户端发起的异步json调用的响应。
为清楚起见,方案如下:我需要在关闭浏览器时将用户更改保存到数据库中。在这样做的时候,我会显示一个小div
并在我们完成后隐藏它(隐藏它并不重要,页面已经消失了!)
在代码中,这正是我想要做的。
PS:我不想使用alert()
window.onbeforeunload = function () {
var requestURL = "../foo/Save";
$("#dvMsg").show();
$.getJSON(
requestURL,
{
changeId: 1,
userId: 1
},
function (data) {
// hide the dvMsg
$("#dvMsg").show();
// page should be safe to unload
});
};
问题是异步调用的性质,即它不会阻塞,并且在我们得到响应之前页面将被卸载。
有什么想法吗?
谢谢!
答案 0 :(得分:1)
如果事件是异步的,我认为根本无法完成。
为什么不让它同步?这可能是你获得它的最佳机会。