localStorage 以及与 cookie 对比

发布于 2022-01-01 21:44:09 字数 1290 浏览 1158 评论 0

最近做一个项目,可以只兼容现代的浏览器,客户端存储就使用了 localStorage。

localStorage 与 sessionStorage 作为客户端存储数据的手段,是 cookie 这方面的替代品,与 cookie 相比,localStorage 有明显的优点。

cookie vs localStorage

  • cookie 存储有限,浏览器最多存 4k;localStorage 浏览器可以存 5M
  • cookie 同域名下50个置顶(最新浏览器可能多些了);localStorage 存储,无域名限制
  • cookie 都会随着网络请求,传输到服务器,一定情况下,会造成性能浪费;localStorage 不会传输
  • cookie 可以设置过期时间,或者浏览器关闭即过期;localStorage 永不过期,只能通过 JS 删除
  • cookie 可以设置根域名;localStorage 只能是当前的域名,无法更改,而且取不到其余域下的
  • cookie 可以设置 path 路径,用于做数据隔离;localStorage 没有 path,只能存储在根路径下
  • localStorage 使用 JS 操作的代码,比 cookie 操作的代码简单的多,因为它只有 key-value 这俩字段

localStorage VS sessionStorage

两者只有一个区别,就是sessionStorage在浏览器关闭的时候,会消失掉,而localStorage不会消失掉
浏览器刷新界面的话,sessionStorage也不会消失

localStorage 的限制

  • localStorage 只能存储字符串类型的数据,如果是 int、float 数据,可以直接存储,拿出来的时候,需要进行转换
  • 如果是数组、json数据的话,需要先通过 JSON.stringify 将数据处理成字符串存入,取出来的时候,需要通过JSON.parse将数据还原成之前的格式
  • 兼容性,IE8及以下破浏览器不支持,这个慢慢可以忽略了
  • localStorage的读取需要浏览器IO操作,也不是越多越好
  • 在浏览器的隐私模式下,localStorage是不好使的
  • 在IOS的隐私模式下,通过 window.localStorage 判断,localStorage 是好使的,但是实际上,数据会存入不上

总结

localStorage 的出现,为浏览器端数据缓存,推进了强大的一步

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

猫九

暂无简介

0 文章
0 评论
830 人气
更多

推荐作者

烙印

文章 0 评论 0

singlesman

文章 0 评论 0

独孤求败

文章 0 评论 0

晨钟暮鼓

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文