HTML5 Indexed Database API 入門(11) - 編輯資料

HTML5 Indexed Database API 入門系列

新增資料必須調用 IDBObjectStore 物件的 add() 方法,定義如下:

IDBRequest add (any value, optional any key);

其中第一個參數 value 表示要新增至物件倉儲中的值,第二個參數則是要加入的識別鍵值,這是選擇性的,主要根據建立物件倉儲時是否定義此識別鍵值,這一部份後續有進一步的說明,讀者目前必須瞭解的是,加入物件倉儲中的每一筆資料,都必須有一個唯一識別鍵值,而這個鍵值可以特別指定或是定義自動產生。

刪除資料必須調用delete() 方法,相較於 add() 單純,此方法的定義如下:

IDBRequest delete (in any key)

此方法只有一個單一 key 參數,表示所要刪除的資料,也就是加入倉儲時指定或是自動產生的 key 值,這個方法可能會產生 TransactionInactiveError 或是 ReadOnlyError 例外,與前述 add() 方法觸發的例外相同。
以上所討論的兩組方法,無論 add() 或是 delete() 都必須在資料庫交易狀態進行,同時在取得交易物件操作時必須指定為允許寫入模式。

考慮以下的程式碼片段:

function add_click(){      
                var transaction = db.transaction(
[objectStoreName], 'readwrite');          
                var store = transaction.objectStore(objectStoreName);
                // 新增資料
                // value:要新增的資料, key:對應的資料鍵值
                var key = document.getElementById('key').value;
                var request = store.add(value, key);
        }

以灰階標示的程式碼,指定 key 與 value 值,調用 add() 方法進行資料新增。接下來是刪除資料的作法:

function delete() {       
                var transaction = db.transaction(
[objectStoreName], 'readwrite');                            
                var store = transaction.objectStore(objectStoreName);                
                var key = document.getElementById('key').value;
                //刪除資料
// key:對應的資料鍵值
                var request = store.delete(key);         
        }

其中以灰階標示的程式碼,根據指定的 key 值進行資料的刪除作業。

HTML5 Indexed Database API 入門系列


沒有留言: