浏览器崩溃时清除sessionStorage

时间:2017-01-23 08:12:20

标签: javascript html5

在我的应用程序中,我使用sessionStorage在客户端保存数据。我的应用程序工作正常,但我希望在浏览器窗口崩溃时实现清除sessionStorage的处理。 如何在窗口崩溃时清除sessionStorage

2 个答案:

答案 0 :(得分:1)

不确定为什么浏览器不会在重新启动时删除所有sessionStogare ,因为它显然是一个新的浏览实例......

但在你的申请中你能做什么总是首先使用

清除任何可能的残留物
sessionStorage.clear(); // on application restart clear any eventual residues

// Your program logic here

这是一个基本的测试示例:

<强> jsBin demo

// 1. let's clear it
sessionStorage.clear();

// 2. Let's try to store a value
document.querySelector("button").addEventListener("click", function(){
  sessionStorage.test = "TEST";
  document.body.textContent = sessionStorage.test;
});

// 3. let's try to crash Chrome (copy this into a tab addressbar)
// chrome://inducebrowsercrashforrealz

// 4. on browser RESTORE we should see the button, not the stored value
if(sessionStorage.test) document.body.textContent = sessionStorage.test;
<button>CLICK TO STORE</button>

答案 1 :(得分:0)

我通过在index.html文件中实现以下代码来实现这一目标:

window.addEventListener('load', function () {
      sessionStorage.setItem('good_exit', 'pending');
      setInterval(function () {
         sessionStorage.setItem('time_before_crash', new Date().toString());
      }, 1000);
   });

   window.addEventListener('beforeunload', function () {
      sessionStorage.setItem('good_exit', 'true');
   });

   if(sessionStorage.getItem('good_exit') &&
      sessionStorage.getItem('good_exit') !== 'true') {
      /*
         insert crash logging code here
     */
      alert('Hey, welcome back from your crash, looks like you crashed on: ' + sessionStorage.getItem('time_before_crash'));
   }