在我的应用程序中,我正在使用sessionStorage
在客户端保存数据。我的应用程序工作正常,但我想在浏览器窗口崩溃时实现清除sessionStorage
的处理。窗口崩溃时如何清除sessionStorage
。
不知道为什么浏览器在重新启动时没有删除所有会话Stogare,因为这显然是一个新的浏览实例......
但是,在应用中,您可以做的是始终首先使用清除任何最终残留物
sessionStorage.clear(); // on application restart clear any eventual residues
// Your program logic here
下面是一个基本的测试示例:
jsBin 演示
// 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>
我通过在索引.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'));
}