cookie | localStorage | sessionStorage | indexDB | |
---|---|---|---|---|
容量 | 4KB | 5MB | 5MB | 没有限制 |
兼容性 | all | H5 | H5 | |
生命周期 | 可设置 | 永久 | 同网页标签 | |
Api | 需要自己封装 | 已提供 | 已提供 | |
存储的数据类型 | 字符串 | 字符串 | 字符串 | 多种 |
作用域 | 所有同源窗口共享 | 所有同源窗口共享 | 一个标签页 | |
是否异步 | 否 | 否 | 否 | 可 |
cookie
生命周期
- 设置了过期时间:cookie存储在硬盘上
- 没有设置过期时间:存在内存中,浏览器关闭则cookie消失
安全
可以设置 http-only ,确保只有http可以读取作为 请求内容发送到服务端,不可以通过js 获取应用
主要用来保存登录信息等用户身份信息,需要参与http的通信localStorage
H5新特性大小
单个localStorage的大小受限,可以用多个iframe方式使用多个域名来突破单个页面下localStorage存储数据的最大限制。 但如果一个域名下同时开多个标签,数据的更改不会同步到每个tab上。生命周期
永久,清除浏览器缓存会被清除应用
适用长期保存在本地的数据sessionStorage
H5新特性生命周期
关闭标签或者关掉浏览器,刷新没事,恢复页面数据也会恢复应用
敏感账号一次性登录
SPA单页面indexDB
indexDB 是非关系型数据库,本质是个二维表,浏览器提供接口可以crud,支持事务,索引等生命周期
分为临时存储和永久存储,临时存储当达到数据上限会删除所有数据!