乐趣区

关于前端:浏览器端的存储总结

  • 少数状况,数据都是存储在服务器的
  • 如果有必要,我的项目有需要,浏览器也能够存储一部分数据的,但只能存储大量的数据。
  • 如果抛开兼容性问题,浏览器有多种存储数据的计划,比方

    • Web Storage
    • Cookie
    • IndexedDB
    • 浏览器缓存等等
  • 在浏览器控制器的 Application 选项卡中,能够查看到他们

比照

  • Cookie

    • 一个 cookie 最大为 4KB,每个网站最多有 20+ 个左右的 cookie(具体取决于浏览器)。
    • Cookie 存储的数据会随浏览器主动发送到服务器
    • Cookie 受跨域影响,默认状况下,一个域 (http://www.a.com) 的 cookie 不会随申请发送到另一个域(http://www.b.com)
    • 尽管浏览器有操作 cookie 的 API,但 cookie 次要由服务器设置。
  • IndexedDB

    • IndexedDB 是一个浏览器内置的数据库,它比 Web Storage 弱小得多。
    • 有齐备的 API,但比拟繁琐
    • IndexedDB 实用于离线利用(不须要联网的利用)
    • 更新数据比拟麻烦
  • Web Storage

    • Web Storage 又分为 localStorage(本地存储)和 sessionStorage(会话存储)
    • localStorage 和 sessionStorage 的区别只有一点:localStorage 永恒保留数据,sessionStorage 存储的数据在浏览器敞开后隐没
    • localStorage 和 sessionStorage 的 API 完全相同
    • 存储的数据默认不会随申请被发送到服务器,程序员能够自在管制是否携带这些数据。
    • 大多数浏览器都容许保留至多 2MB 的数据(或更多)

localStorage 和 sessionStorage 的 API

  • 二者的 API 办法齐全一样
  • localStorage.setItem('key', 'value') — 在浏览器存储中,保留一个值,只能存字符串、数字类型
  • localStorage.getItem('key') — 从浏览器存储中中获取一个值
  • localStorage.removeItem('key') — 从浏览器存储中移除一个值

应用 localStorage 保留 token 值

登录胜利后,将服务器返回的 token 存储到 localStorage 中。

localStorage.setItem('token', res.token);

这个值会永恒保留,后续如果须要这个值,就能够应用 localStorage.getItem('token') 将其取出应用。

退出移动版