sessionStorage用于单标签页会话期间临时存储数据,关闭标签页即清除;localStorage则持久保存于同源所有标签页,需手动清除。

sessionStorage 是浏览器提供的一种前端本地存储机制,用于在**当前浏览器标签页的会话周期内**临时保存数据。只要这个标签页没关闭,即使刷新页面、跳转到同域其他页面,数据依然存在;一旦关闭该标签页(或窗口),所有 sessionStorage 数据立即被清除。
核心区别:生命周期和作用域
这是两者最本质的差异:
sessionStorage:数据绑定到“单个标签页”,关掉这个标签页就清空;不同标签页之间完全隔离,哪怕打开的是同一个网址,彼此也读不到对方的 sessionStorage。 localStorage:数据绑定到“整个域名”,只要协议、域名、端口相同,所有同源标签页共享同一份数据;关闭标签页或浏览器都不影响数据,除非手动调用 removeItem 或 clear,或者用户主动清除站点数据。
适用场景对比
选哪个,关键看你要存什么、存多久、在哪用:
用 sessionStorage 存临时状态:比如多步骤表单中途填写的内容、页面滚动位置、未提交的草稿、一次性的登录凭证(如 OAuth 临时 token)——这些不需要跨标签页,也不需要第二天还在。 用 localStorage 存持久偏好:比如用户主题设置(深色/浅色)、语言选择、已读文章标记、购物车(非登录态下)、播放历史等——希望下次打开网站时还能延续体验。
使用方式几乎一样,但不能混用
两者 API 完全一致:
立即学习“Java免费学习笔记(深入)”;
sessionStorage.setItem('key', 'value') localStorage.setItem('key', 'value') 都只支持字符串值,存对象需先 JSON.stringify(),取的时候再 JSON.parse() 都受同源策略限制:不同域名、协议或端口之间无法互相访问
安全与容量注意点
它们都不发给服务器,不参与 HTTP 请求,所以比 Cookie 更轻量、更隐私:
容量通常都是约 5MB(远大于 Cookie 的 4KB),但具体上限因浏览器而异。 敏感信息(如密码、长期有效的 token)不建议直接存 sessionStorage 或 localStorage,因为 XSS 攻击可能读取它们;短期、低敏感度的一次性凭证可酌情使用 sessionStorage。 移动端 WebView 中,sessionStorage 表现不稳定(比如页面跳转被视作新会话),此时更适合用 localStorage + 显式清理逻辑替代。
以上就是javascript的sessionStorage是什么_它与localStorage有何不同?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1544188.html
微信扫一扫
支付宝扫一扫