Chrome浏览器sessionStorage一段时间后自动清理问题求助与方案问询
Chrome 114 sessionStorage 自动丢失问题:复现与解决方案
问题描述
在Chrome 114.0.5735.198 (arm64正式版)中,出现sessionStorage短时间内自动被清理的异常。将变量存入sessionStorage后,很快就无法读取到值。已在3种不同环境、3个应用及静态服务器(如http-server)、Windows和MacOS系统下验证,仅该Chrome版本会出现此问题,其他浏览器无异常,目前已影响大型商业应用运行。
复现细节
复现代码
<!DOCTYPE html> <html lang="en"> <script> sessionStorage.setItem('TEST', 'TEST value') setTimeout(() => { console.log('100ms', sessionStorage.getItem('TEST')) }, 100) setTimeout(() => { console.log('200ms', sessionStorage.getItem('TEST')) }, 200) setTimeout(() => { console.log('300ms', sessionStorage.getItem('TEST')) }, 300) setTimeout(() => { console.log('500ms', sessionStorage.getItem('TEST')) }, 500) setTimeout(() => { console.log('1000ms', sessionStorage.getItem('TEST')) }, 1000) setTimeout(() => { console.log('2000ms', sessionStorage.getItem('TEST')) }, 2000) setTimeout(() => { console.log('3000ms', sessionStorage.getItem('TEST')) }, 3000) </script> <body> <h1>Welcome to My Website</h1> </body> </html>
触发步骤
- 打开Chrome无痕窗口
- 新建标签页
- 输入服务器URL访问页面
- 打开开发者工具查看控制台日志
- 重复步骤2-4 5-10次,即可触发sessionStorage丢失的问题
关键注意点:必须先访问页面再打开开发者工具,提前开启开发者工具无法复现该问题。
疑问与解答
1. 是否有其他开发者遇到过该问题?
是的,有部分开发者在社区反馈过相同场景的问题,主要集中在arm64架构的Chrome 114正式版中,属于该版本的特定bug。
2. 可行的临时规避方案有哪些?
- 优先升级Chrome版本:该bug在Chrome 115及后续版本中已被官方修复,升级是最彻底的解决方式。
- 临时替换存储方案:若无法立即升级,可改用
localStorage替代sessionStorage(注意两者的存储生命周期差异,localStorage不会随会话关闭清除,需根据业务场景调整清理逻辑)。 - 增加校验与兜底逻辑:对sessionStorage的读写操作增加校验,当读取到
null时自动重新初始化数据,避免业务流程中断。
3. 为何公开讨论或相关问题极少?
- 触发条件苛刻:该bug需要特定操作步骤(无痕窗口、重复新建标签页、晚开开发者工具),大部分开发者难以复现,因此很少提交反馈。
- 版本迭代快:Chrome 114属于过渡版本,很快被115版本替代,未造成大范围的持续影响,相关讨论未形成规模。
内容的提问来源于stack exchange,提问作者Taras Halynskyi
相关产品推荐
相关产品推荐

