sessionStorage是仅限当前标签页的临时存储,关闭标签即清空,不与服务器通信、不跨标签共享、不触发storage事件;适用于单标签内短时状态保持,如表单暂存、页面间参数传递、多步流程状态记录。

sessionStorage 就是当前标签页的“临时记事本”
它和服务器端的 session 没有关系,也不发请求、不传后端。名字里的 “session” 只是指浏览器中一次打开→关闭标签页的过程——关掉这个标签,sessionStorage 里所有数据立刻清空,不留痕迹。
什么时候该用 sessionStorage 而不是 localStorage
关键看数据要不要跨标签页、要不要活过页面关闭:
- 表单填了一半,刷新后还想接着填?→
sessionStorage正合适 - 用户点进详情页前,在列表页选了筛选条件,想带过去?→ 存
sessionStorage,避免污染其他标签页 - 多步骤向导走到第 3 步,跳转路由但不想丢状态?→
sessionStorage.setItem('step', '3') - 需要多个标签页共享(比如主题设置)或长期记住(如登录态标识)?→ 别用它,换
localStorage
存对象、取值、防报错:三个实操要点
它 API 看似简单,但日常踩坑集中在三处:
思乐微信商城微分销系统是以.net+access/mssql进行开发的微信分销系统。基于微信朋友圈的传播,是打造以分销商为中心的全新微信分销体验。让粉丝实时有效的获取朋友圈流量并快速分享购买分佣。因为是基于微信,所以要在微信上体验才更好。关注我们的微信核心功能:1、自动提示用户关注微信,解决一般程序无关注微信公众号的过程2、只要通过链接进一次,不过好久注册,什么方面注册,只要是用微信注册的,都会算
- 只能存字符串:
sessionStorage.setItem('user', JSON.stringify({id: 1, name: 'Alice'})),读取时必须JSON.parse(sessionStorage.getItem('user')) - 容量约 5MB,但存满或用户禁用时会抛
QuotaExceededError,建议加try...catch - 不同标签页完全隔离——新开一个同源标签页,
sessionStorage是空的,别指望它同步状态
sessionStorage 不触发 storage 事件,别想靠它跨标签通信
localStorage 修改后,同源其他窗口能监听到 storage 事件;但 sessionStorage 不会触发。这意味着:
立即学习“Java免费学习笔记(深入)”;
- 不能用它做跨标签页的状态广播
- 如果误以为它能同步,调试时会发现“改了没反应”
- 真要跨标签传参,改用 URL 参数、BroadcastChannel 或服务端协调










