》HTML5 Indexed Database API 入門系列
新增資料必須調用 IDBObjectStore 物件的 add() 方法,定義如下:
其中第一個參數 value 表示要新增至物件倉儲中的值,第二個參數則是要加入的識別鍵值,這是選擇性的,主要根據建立物件倉儲時是否定義此識別鍵值,這一部份後續有進一步的說明,讀者目前必須瞭解的是,加入物件倉儲中的每一筆資料,都必須有一個唯一識別鍵值,而這個鍵值可以特別指定或是定義自動產生。
刪除資料必須調用delete() 方法,相較於 add() 單純,此方法的定義如下:
此方法只有一個單一 key 參數,表示所要刪除的資料,也就是加入倉儲時指定或是自動產生的 key 值,這個方法可能會產生 TransactionInactiveError 或是 ReadOnlyError 例外,與前述 add() 方法觸發的例外相同。
以上所討論的兩組方法,無論 add() 或是 delete() 都必須在資料庫交易狀態進行,同時在取得交易物件操作時必須指定為允許寫入模式。
考慮以下的程式碼片段:
以灰階標示的程式碼,指定 key 與 value 值,調用 add() 方法進行資料新增。接下來是刪除資料的作法:
其中以灰階標示的程式碼,根據指定的 key 值進行資料的刪除作業。
》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:對應的資料鍵值
// key:對應的資料鍵值
var request = store.delete(key);
}
其中以灰階標示的程式碼,根據指定的 key 值進行資料的刪除作業。
》HTML5 Indexed Database API 入門系列
沒有留言:
張貼留言