ori ответ правильный и полный.
Но, исходя из вашего случая, вы можете использовать обходной путь.
Существует две функции JavaScript, которые могут вас заинтересовать: localStorage и sessionStorage (этото же самое, за исключением того, что второй сбрасывается при закрытии браузера, поэтому вы, вероятно, выберете первый)
Идея состоит в том, чтобы сохранить данные в localStorage с некоторыми метаданными, указывающими, были ли сохранены изменения.Если пользователь покидает страницу, но переходит на другую страницу в вашем сервисе или даже возвращается позже - вы можете снова отправить данные с некоторой информацией, которая не была сохранена из-за разгрузки страницы.
Код подтверждения концепции:
$(window).bind('unload', function() {
localStorage.setItem('unsavedData',data);
localStorage.setItem('unsaved',true);
});
$(document).ready(function(){
if(localStorage.getItem('unsaved')){
//ajax send
localStorage.setItem('unsaved',false);
}
});
[edit]
Я успешно использую JSONP с unload
, и, похоже, он работал большую часть времени, но я не тестировал его под нагрузкой и на медленнойсеть.