首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >浏览器崩溃时清除sessionStorage

浏览器崩溃时清除sessionStorage
EN

Stack Overflow用户
提问于 2017-01-23 08:12:19
回答 2查看 904关注 0票数 1

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-24 05:24:04

通过将下面的代码实现到我的index.html文件中,我做到了这一点:

代码语言:javascript
复制
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'));
   }
票数 0
EN

Stack Overflow用户

发布于 2017-01-23 09:37:57

不知道为什么浏览器不删除所有的sessionStogare 在重新启动,因为这显然是一个新的浏览实例.

但是,您可以在应用程序中做的是总是首先清除任何最终的残余物使用

代码语言:javascript
复制
sessionStorage.clear(); // on application restart clear any eventual residues

// Your program logic here

下面是一个基本的测试示例:

jsBin演示

代码语言:javascript
复制
// 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;
代码语言:javascript
复制
<button>CLICK TO STORE</button>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41801709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档