【公告】網站目前停止所有的課程訂閱服務,原有學員權益不受影響,造成不便還請見諒,我們正在打造更多課程以及圖書,包含 Python 為主的課程主題,未來將會合併且擴充目前的課程內容,提供全新課程訂閱服務,感謝學員的支持。
【公告】《Entity Framework 實務精要》 絕版優惠學習活動,是針對最後一批少量書籍絕版的短期特別活動,只提供 20 個名額(剩 4 名),教學影片要在今年暑假過後才會重新開放訂閱,並沒有提供之前單獨購書的讀者,還請見諒, 如果您需要教學影片,屆時再請參與,也感謝讀者學員的支持,我們正在開發更多的教學內容,歡迎與我們一起努力。
《Entity Framework 實務精要》 絕版優惠學習活動》

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 入門系列


沒有留言: