У меня есть приложение, которое выполняет ajax-запрос для получения некоторых данных, которые необходимо знать, если есть фоновый процесс для продолжения сохранения запроса в локальном хранилище, даже если пользователь покидает страницу.
Я нашел решения, чтобы пользователь не покинул страницу с событием «onbeforeunload», но это не решение.
// Очистить локальное хранилище при начале загрузки
localStorage.removeItem ( 'призы');
var request = $.post(url, {test:test})
.success( function(data){
localStorage.setItem('prizes', JSON.stringify(data));
},4000)
//Get local storage
$('body').on('click','#remove',function(e){
e.preventDefault();
//fake data
localStorage.removeItem('prizes');
});
$('body').on('click','#show',function(e){
//fake data
e.preventDefault();
//fake data
var data = localStorage.getItem('prizes');
console.log(data)
});
//Force the user to not refresh the page with an alert message
window.onbeforeunload = function(){
if(!request){
return "Request not finished";
}
}
Идея заключается в том, что при запуске ajax выполняется сохранение данных в локальном хранилище, даже если пользователь покидает страницу.