- 少数状况,数据都是存储在服务器的
- 如果有必要,我的项目有需要,浏览器也能够存储一部分数据的,但只能存储大量的数据。
-
如果抛开兼容性问题,浏览器有多种存储数据的计划,比方
- 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 实用于离线利用(不须要联网的利用)
- 更新数据比拟麻烦
- 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')
将其取出应用。