什么是 IndexedDB?
IndexedDB 是一种运行在浏览器中的 NoSQL 数据库,适用于存储大量结构化数据(如 JSON 对象)。与 LocalStorage 不同,IndexedDB 的特点是支持异步操作、事务处理以及索引查询。
IndexedDB 的特点
- 存储容量大:IndexedDB 可以存储大量数据,而不像 LocalStorage 受 5MB 限制。
- 支持事务:支持数据库操作的事务管理,确保数据一致性。
- 支持索引:允许根据索引快速查询数据。
- 异步 API:采用异步接口,避免阻塞主线程。
- 结构化存储:可以存储对象,而不仅仅是字符串。
基本概念
在开始操作 IndexedDB 之前,了解以下基本概念非常重要:
- 数据库(Database):存储数据的容器,每个数据库都有唯一名称。
- 对象存储(Object Store):类似于关系型数据库中的表,用于存储对象。
- 事务(Transaction):所有数据库操作都必须在事务中完成,支持原子性。
- 键(Key):每条数据的唯一标识,类似于主键。
- 索引(Index):为对象存储中的字段创建索引,提升查询效率。
- 游标(Cursor):用于遍历对象存储中的数据。
IndexedDB 的使用流程
1. 打开数据库
const request = indexedDB.open("MyDatabase", 1);
request.onsuccess = (event) => {
const db