У меня есть ситуация, когда на странице разгрузки я запускаю запрос на удаление черновика работы пользователя. Это работает нормально, пока пользователь не решит обновить страницу, после чего проверка вкладки сети Chrome показывает, что Chrome загружает новую страницу до того, как запрос ajax действительно будет запущен. В результате создается новый черновик при загрузке страницы, а затем сразу же удаляется вызов ajax. Вот в основном то, что я делаю:
window.onbeforeunload = function(){
if (pageUpdated){
return 'Are you sure you want to abandon this draft?';
}
}
window.onunload = function(){
$.ajax({
async: false,
type: 'DELETE',
url: '/some/url/'
});
}
Есть ли способ заставить обработчик onunload завершить работу перед отправкой запроса на новую страницу?
Браузеры протестированы: (Chrome 9, FF 3.6) в Ubuntu 10.04 Lucid