Logo
Section 1 / 5

介绍 IndexedDB API

简要介绍IndexedDB API及其使用场景和特性。

导入

介绍 IndexedDB API

简要介绍IndexedDB API及其使用场景和特性。

什么是 IndexedDB API?

IndexedDB 是一种功能强大的低级客户端数据存储 API,可用于存储大量结构化数据。它是一种 NoSQL 数据库,这意味着它不像传统 SQL 数据库那样使用表格和行来组织数据。相反,它采用面向对象的模型来存储和检索数据。这使其非常适合需要在客户端实现快速且灵活存储的 Web 应用程序。

IndexedDB API 是一种运行在浏览器中的键值对数据库。与 sessionStorage 或 localStorage 等其他存储机制不同,IndexedDB API 以异步方式访问,因此特别适合用于具有异步特性的服务工作线程(service workers)。

IndexedDB API 的用途

IndexedDB API 允许我们存储结构化数据,例如 JSON、XML、JavaScript 对象、数组,以及大量的非结构化数据,包括文件或二进制大对象(Blobs)。

该 API 可用于存储格式化的响应数据、转换后的响应数据以及响应数据的片段。与应用壳资源(app shell assets)应存入缓存不同,IndexedDB 专为存储结构化和非结构化数据而设计。

优势

以下是 IndexedDB API 的一些主要优势:

离线可用性

IndexedDB 的一个核心优势是其离线能力。使用 IndexedDB 的 Web 应用程序即使在网络连接中断时仍可继续运行。这意味着用户可以持续使用应用,待网络恢复后,数据将自动保存并同步。这使得 IndexedDB 成为需要支持在线和离线模式的 Web 应用的理想选择。

可扩展性

另一个优势是其良好的可扩展性。与 localStorage 等其他客户端存储方案相比,IndexedDB 能够处理海量数据,非常适合需要存储大量结构化数据的应用场景。同时,它具备高效快速的性能,这对要求快速响应时间的 Web 应用至关重要。

可访问性

我们可以从页面的 JavaScript 代码和服务工作线程中访问应用的 IndexedDB。需要注意的是,sessionStorage 和 localStorage 无法在服务工作线程中使用,因为它们是同步访问的,而 IndexedDB 的异步特性使其成为服务工作线程中的首选存储机制。

特性与结构

事务性

IndexedDB 具备事务性,这意味着在一个事务中,如果某一步操作失败,则整个事务的所有操作都不会生效。这一特性对于保证数据库的一致性和完整性至关重要。

数据库与对象存储

在典型的 IndexedDB 配置中,我们可以创建多个数据库,每个数据库包含多个对象存储(object store)。对象存储 类似于传统数据库中的表,数据对象就存储在其中。

...
IndexedDB 包含数据库和对象存储

通过理解 IndexedDB 的结构与用途,我们可以认识到它为何是浏览器端数据存储的重要工具。无论是在服务工作线程中,还是在传统的 Web 应用中,IndexedDB 都是一种高效、异步地存储和访问结构化与非结构化数据的可靠方式。

总之,IndexedDB API 是一种强大且多功能的客户端结构化数据存储工具。它特别适用于需要支持在线与离线运行的应用,以及对存储速度和效率有较高要求的场景。如果你正在寻找一种底层的客户端数据存储方案,学习并掌握 IndexedDB 值得投入。

理解应用清单

IndexedDB 接口