Cookie和HTML5新增localStorage、sessionStorage的6大区别

前言

本篇文章总结于MDN文档、相关书籍、以及大量的相关文章。

如果发现文章存在错误,请各位大佬指出!!!

如果觉得文章不错,记得点赞、收藏!!


正文

Cookie

  • 数据生命性:一般由服务器生成,可设置失效时间。(也可以由客户端生成)
  • 存放数据大小: 一般大小不能超过4KB
  • 作用域:Cookie的作用域仅仅由domainpath决定,与协议和端口无关
  • 与服务器端通信:浏览器每次向服务器发出请求,就会自动把当前域名下所有未过期的Cookie一同发送到服务器(会带来额外的性能开销
  • 易用性:缺乏数据操作接口(document.cookie)。
  • 适用场景:只有那些每次请求都需要让服务器知道的信息(保持用户的登录状态),才应该放在 Cookie 里面。

localStorage

  • 数据生命性::存储在 localStorage 的数据可以长期保留
  • 存放数据大小: 一般为5MB
  • 作用域:localStorage的作用域是限定在文档源级别的。文档源通过协议、主机名以及端口三者来确定。
  • 与服务器端通信不会自动把数据发给服务器,仅在本地保存。
  • 易用性:有很多易用的数据操作接口,比如setItem、getItem、removeItem
  • 适用场景:常用于长期登录(+判断用户是否已登录),适合长期保存在本地的数据

sessionStorage

  • 数据生命性:sessionStorage 里面的数据在页面会话结束(关闭对应浏览器标签或窗口)时会被清除。
  • 存放数据大小: 一般为5MB
  • 作用域:sessionStorage的作用域也是限定在文档源级别。但需要注意的是,如果相同文档源的页面渲染在不同的标签中,sessionStorage的数据是无法共享的
  • 与服务器端通信不会自动把数据发给服务器,仅在本地保存。
  • 易用性:有很多易用的数据操作接口,比如setItem、getItem、removeItem
  • 适用场景:敏感账号一次性登录;

Web Storage (localStorage、sessionStorage)的优势

  • 存储空间更大
  • 更节省流量(没有额外性能开销)
  • 获取数据从本地获取会比服务器端获取快得多,所以显示更快

IndexedDB(补充内容)

  • IndexedDB 就是浏览器提供的本地数据库,它可以被网页脚本创建和操作。

  • IndexedDB 不属于关系型数据库(不支持 SQL 查询语句),更接近 NoSQL 数据库。

  • IndexedDB储存空间大,一般来说不少于 250MB,甚至没有上限。

  • IndexedDB不仅可以储存字符串,还可以储存二进制数据(ArrayBuffer 对象和 Blob 对象)。

  • 提供查找接口,还能建立索引

  • 异步操作:IndexedDB 操作时不会锁死浏览器,用户依然可以进行其他操作,这与 LocalStorage 形成对比,后者的操作是同步的。异步设计是为了防止大量数据的读写,拖慢网页的表现。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焦妮敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值