数据存储
数据存储
存储方式 | 存储类型 | 访问限制 | 存储时长 | 适用场景 |
---|---|---|---|---|
Cookie | 格式化字符串 | 同源,可自定义访问域 | 自定义时长,默认为 |
用户认证信息 |
sessionStorage | 同一个 |
除了本 |
当前页面音 |
|
localStorage | 同域名,不同的 |
默认永久性存储 | 本地缓存数据 | |
IndexedDB | 文档型数据库,没有大小限制 | 同域名 | 默认永久性存储 | 大量本地缓存数据 |
Love field | 关系型数据库 | |||
LokiJS | 内存数据库 |
网络平台为开发者提供了许多存储选项,每一种都是在考虑到特定的使用情况下建立的。
- 其中一些选项显然与本建议不重叠,因为它们只允许存储极少量的数据,如cookies,或由 “sessionStorage “和 “localStorage “机制组成的Web Storage API。
- 其他选项由于各种原因已经被废弃,如文件和目录条目
API 或WebSQL。 - 文件系统访问
API]( https://web.dev/file-system-access/) 有一个类似的API 表面,但它的用途是与客户的文件系统对接,并提供对可能不属于原点甚至是浏览器所有权的数据的访问。这种不同的重点伴随着更严格的安全考虑和更高的性能成本。 - IndexedDB API可以作为
Storage Foundation API 的一些用例的后端。例如,Emscripten 包括IDBFS,一个基于IndexedDB 的持久化文件系统。然而,由于IndexedDB 从根本上说是一个键值存储,它有很大的性能限制。此外,在IndexedDB 下,直接访问一个文件的子部分甚至更加困难和缓慢。 - 最后,
CacheStorage 接口被广泛支持,并被调整为存储大尺寸数据,如网络应用程序资源,但其值是不可变的。