Я пытаюсь заблокировать событие unload для страницы, пока не получу ответ от сервера на асинхронный вызов json, инициированный клиентом.
Чтобы прояснить ситуацию, сценарий следующий: мне нужно сохранить изменения пользователя в базе данных, когда они закрывают браузер. При этом я покажу маленькую div
и скрою ее, когда мы закончим (скрытие не имеет значения, страница уже исчезнет!)
В коде это в значительной степени то, что я пытаюсь сделать.
PS: я не хочу использовать alert()
<code>
window.onbeforeunload = function () {<br>
var requestURL = "../foo/Save";
$("#dvMsg").show();<br>
$.getJSON(
requestURL,
{
changeId: 1,
userId: 1
},
function (data) {
// hide the dvMsg
$("#dvMsg").show();
// page should be safe to unload
});<br>
};
Проблема заключается в характере асинхронного вызова, то есть он не будет блокироваться, и страница будет выгружена до того, как мы получим ответ.
Есть идеи?
Спасибо!