<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 第三節:indexedDB 對象 瀏覽器原生提供`indexedDB`對象,作為開發者的操作接口。 ## 一、indexedDB.open() `indexedDB.open()`方法用于打開數據庫。這是一個異步操作,但是會立刻返回一個 IDBOpenDBRequest 對象。 ~~~ var openRequest = window.indexedDB.open('test', 1); ~~~ 上面代碼表示,打開一個名為`test`、版本為`1`的數據庫。如果該數據庫不存在,則會新建該數據庫。 `open()`方法的第一個參數是數據庫名稱,格式為字符串,不可省略;第二個參數是數據庫版本,是一個大于`0`的正整數(`0`將報錯),如果該參數大于當前版本,會觸發數據庫升級。第二個參數可省略,如果數據庫已存在,將打開當前版本的數據庫;如果數據庫不存在,將創建該版本的數據庫,默認版本為`1`。 打開數據庫是異步操作,通過各種事件通知客戶端。下面是有可能觸發的4種事件。 * **success**:打開成功。 * **error**:打開失敗。 * **upgradeneeded**:第一次打開該數據庫,或者數據庫版本發生變化。 * **blocked**:上一次的數據庫連接還未關閉。 第一次打開數據庫時,會先觸發`upgradeneeded`事件,然后觸發`success`事件。 根據不同的需要,對上面4種事件監聽函數。 ~~~ var openRequest = indexedDB.open('test', 1); var db; openRequest.onupgradeneeded = function (e) { console.log('Upgrading...'); } openRequest.onsuccess = function (e) { console.log('Success!'); db = openRequest.result; } openRequest.onerror = function (e) { console.log('Error'); console.log(e); } ~~~ 上面代碼有兩個地方需要注意。首先,`open()`方法返回的是一個對象(IDBOpenDBRequest),監聽函數就定義在這個對象上面。其次,`success`事件發生后,從`openRequest.result`屬性可以拿到已經打開的`IndexedDB`數據庫對象。 ## 二、indexedDB.deleteDatabase() `indexedDB.deleteDatabase()`方法用于刪除一個數據庫,參數為數據庫的名字。它會立刻返回一個`IDBOpenDBRequest`對象,然后對數據庫執行異步刪除。刪除操作的結果會通過事件通知,`IDBOpenDBRequest`對象可以監聽以下事件。 * `success`:刪除成功 * `error`:刪除報錯 ~~~ var deleteRequest = window.indexedDB.deleteDatabase('demo'); deleteRequest.onerror = function (event) { console.log('Error'); }; deleteRequest.onsuccess = function (event) { console.log('success'); }; ~~~ 調用`deleteDatabase()`方法以后,當前數據庫的其他已經打開的連接都會接收到`versionchange`事件。 > 注意,刪除不存在的數據庫并不會報錯。 ## 三、indexedDB.cmp() `indexedDB.cmp()`方法比較兩個值是否為 indexedDB 的相同的主鍵。它返回一個整數,表示比較的結果:`0`表示相同,`1`表示第一個主鍵大于第二個主鍵,`-1`表示第一個主鍵小于第二個主鍵。 ~~~ window.indexedDB.cmp(1, 2) // -1 ~~~ 注意,這個方法不能用來比較任意的 JavaScript 值。如果參數是布爾值或對象,它會報錯。 ~~~ window.indexedDB.cmp(1, true) // 報錯 window.indexedDB.cmp({}, {}) // 報錯 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看