常用web存储方式主要有cookie、Web Storage(localStorage/sessionStorage)、IndexedDB。
cookie | Web Storage | IndexedDB | |
---|---|---|---|
存储大小 | 不超过4kb | 2.5MB到10MB | 一般不小于250MB |
数据类型 | 仅限于字符串 | 仅限于字符串 | 不仅可以储存字符串,还可以储存二进制数据(ArrayBuffer 对象和 Blob 对象) |
数量限制 | 存在浏览器差异,尽量每个域名cookie不超过20个 | 无限制 | 无限制 |
过期时间 | 默认当前会话关闭时删除,如果设置expires属性则以设置失效时间为准 | localStorage没有过期时间,sessionStorage在会话关闭时清空 | 没有过期时间 |
隐私浏览模式下是否可用 | 可用,关闭最后一个隐私浏览窗口时删除 | 不可用 | 可用,关闭最后一个隐私浏览窗口时删除 |
同源策略 | 相同域名 | 协议、域名和端口全部一致 | 协议、域名和端口全部一致 |
其他 | 同步 | 同步 | 异步 |