如何使用 IndexedDB 存储数据?

· 约 3 分钟读完 · 第 63 / 119 章

推荐答案

本题详细解读

1. 打开或创建数据库

使用 indexedDB.open("MyDatabase", 1) 来打开或创建一个名为 MyDatabase 的数据库。如果数据库不存在,它会被创建。第二个参数是数据库的版本号,用于控制数据库的升级。

2. 创建对象存储空间

在 onupgradeneeded 事件中,可以创建或修改数据库的结构。在这个例子中,我们检查是否存在名为 myStore 的对象存储空间,如果不存在,则创建一个新的对象存储空间,并指定 id 作为主键。

3. 开始事务

在 onsuccess 事件中,我们通过 db.transaction("myStore", "readwrite") 开始一个事务。事务可以是只读的 (readonly) 或读写的 (readwrite)。

4. 添加数据

使用 store.add({ id: 1, name: "John Doe", age: 30 }) 向对象存储空间中添加数据。如果数据的主键已经存在,则会抛出错误。

5. 读取数据

使用 store.get(1) 来读取主键为 1 的数据。读取操作是异步的,结果会在 onsuccess 事件中返回。

6. 更新数据

使用 store.put({ id: 1, name: "John Doe", age: 31 }) 来更新数据。如果数据的主键不存在,则会添加新数据。

7. 删除数据

使用 store.delete(1) 来删除主键为 1 的数据。

8. 错误处理

在 onerror 事件中处理数据库操作中的错误。可以通过 event.target.errorCode 获取错误代码。

通过以上步骤,你可以使用 IndexedDB 在浏览器中存储和操作数据。