Продолжайте сохранять локальное хранилище, даже если пользователь обновляет страницы - PullRequest
0 голосов
/ 22 мая 2019

У меня есть приложение, которое выполняет 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 выполняется сохранение данных в локальном хранилище, даже если пользователь покидает страницу.

1 Ответ

0 голосов
/ 14 июня 2019
 window.addEventListener('storage', (e) => {
  if (e.key === 'prizes') {
    data = JSON.parse(e.newValue)
    console.log(data)
  }
})

Надеюсь, это сработает.

...