当用户想要编辑任务时,文件被锁定。当他们保存或点击关闭按钮(从对话框)时,文件将被解锁。
但是,如果用户点击其中任何一个:后退按钮,前进按钮,关闭标签/浏览器
文件被锁定。我有一个清理调度程序,可以在X分钟后解锁所有文件。
然而,我希望能够做最后一个解锁文件的请求,这样人们就不必等待X分钟直到任务解锁,因为有人决定关闭浏览器。
我发现了这个
$(window).unload(function ()
{
alert('unloaded');
});
但是我不知道它支持哪种浏览器,或者它是否做了我要求它做的所有事情。
答案 0 :(得分:4)
window.onunload = function () {
// has to be synchronous so the function doesn't return immediately
$.ajax({
async: false,
...
});
};
同步请求的关注度不高,因为它们可以冻结UI,但如果您想实现此特定行为,我看不到任何其他方式。我确信你可以通过其他几种方式做到这一点而不需要同步请求。
例如,您可以要求用户在尝试关闭窗口时保存文件:
// use beforeunload to prompt the user
window.onbeforeunload = function () {
if (!saved) {
return "Please save the task before exiting!";
}
};
此外,大多数浏览器都支持这些事件。我认为Opera是一个例外。