JavaScript 中如何使用 IndexedDB?

推荐答案

-- -------------------- ---- -------
-- --------
----- ------- - ---------------------------- ---

----------------------- - --------------- -
    ----- -- - --------------------
    -- ----------
    -- ------------------------------------------ -
        ------------------------------- - -------- ---- ---
    -
--

----------------- - --------------- -
    ----- -- - --------------------
    -- ------
    ----- ----------- - ------------------------- -------------
    ----- ----- - -----------------------------------

    -- ----
    ----------- --- -- ----- ------- ---

    -- ----
    ----- ---------- - -------------
    -------------------- - ---------- -
        ------------------------------- -- - --- -- ----- ------- -
    --

    -- ----
    ----------- --- -- ----- ----- ---

    -- ----
    ----------------
--

--------------- - --------------- -
    ----------------------- ------ - - ------------------------
--

本题详细解读

1. 打开或创建数据库

使用 indexedDB.open(databaseName, version) 方法来打开或创建一个 IndexedDB 数据库。如果数据库不存在,则会自动创建。

2. 处理 onupgradeneeded 事件

当数据库版本发生变化时(例如第一次创建数据库或升级版本),会触发 onupgradeneeded 事件。在这个事件处理程序中,可以创建或修改对象存储空间。

3. 处理 onsuccess 事件

当数据库成功打开时,会触发 onsuccess 事件。在这个事件处理程序中,可以开始事务并操作数据。

-- -------------------- ---- -------
----------------- - --------------- -
    ----- -- - --------------------
    ----- ----------- - ------------------------- -------------
    ----- ----- - -----------------------------------

    -- ----
    ----------- --- -- ----- ------- ---

    -- ----
    ----- ---------- - -------------
    -------------------- - ---------- -
        ------------------------------- -- - --- -- ----- ------- -
    --

    -- ----
    ----------- --- -- ----- ----- ---

    -- ----
    ----------------
--

4. 处理 onerror 事件

如果数据库操作过程中发生错误,会触发 onerror 事件。在这个事件处理程序中,可以处理错误。

5. 事务操作

onsuccess 事件处理程序中,可以通过 db.transaction(storeName, mode) 方法开始一个事务。事务模式可以是 readonlyreadwrite

6. 数据操作

在事务中,可以通过 add()get()put()delete() 方法来添加、读取、更新和删除数据。

纠错
反馈