MDN规定sessionStorage重启浏览器会清除,为何Firefox59/Chrome65中未清除?
为什么重启Firefox 59和Chrome 65后sessionStorage数据还没消失?
哈哈,这个问题我之前也碰到过,其实是浏览器的会话恢复功能在“搞小动作”,完全不是MDN的描述有问题~
本质上,MDN说的“页面会话结束时清除sessionStorage”是准确的,但这里的“会话结束”得满足一个前提:你是真正手动结束了页面会话,而不是让浏览器帮你“续上”了。
具体到你用的这两个浏览器:
- Chrome 65:默认开了“继续浏览上次会话”的功能,重启时会自动把你之前没手动关的标签页全部恢复。Chrome会把这些标签页的sessionStorage数据一起保存下来,相当于你的会话根本没真正结束,只是暂时休眠了。只有当你手动关掉所有标签页再重启,或者在设置里把启动行为改成“打开新标签页”,sessionStorage才会被清掉。
- Firefox 59:同样默认开启了“恢复先前会话”的设置。Firefox的sessionStorage是和单个标签页绑定的,只要标签页被浏览器自动恢复,对应的sessionStorage就会跟着回来。如果想让它重启后消失,要么手动关完所有标签页再退浏览器,要么把启动行为改成“显示空白页”或者“显示主页”。
快速验证方法:
- 手动关闭所有打开的标签页(别直接点浏览器右上角的叉,要把每个标签都关了)
- 重启浏览器,再去检查sessionStorage,这时应该就空了
另外,如果你想彻底避免这种情况,还可以在浏览器的隐私设置里开启“退出浏览器时清除浏览数据”,记得勾选“会话存储”相关的选项,这样不管有没有恢复会话,重启后都会把sessionStorage清干净。
内容的提问来源于stack exchange,提问作者TotalAMD
相关产品推荐
相关产品推荐

