HTML5 Indexed Database API 入門(3) - 建立資料庫連線

HTML5 Indexed Database API 入門系列

進行任何資料庫操作之前首先必須完成連線作業, IDBFactory 定義的 open() 方法支援此作業,不過特定的瀏覽針對 IDBFactory 的實作並不相同,若是 Webkit 瀏覽器,必須透過 webkitIndexedDB 進行調用,而 Gecko 瀏覽器則透過 mozIndexedDB 進行調用。

考慮以下的程式碼,其中調用 open() ,並且指定所要開啟的資料庫名稱 KTMS ,將其開啟:

var request = webkitIndexedDB.open('KTMS');

這一行程式碼適用於 Webkit 瀏覽器,如果要針對 Gecko 瀏覽器設計,則換成 mozIndexedDB 即可,我們可以寫下以通用的程式碼:

indexedDB = window.indexedDB ||
window.mozIndexedDB ||
window.webkitIndexedDB  ;

如此一來就可以將其修改如下:

var request = indexedDB.open('KTMS');

當以上的程式碼執行完畢,如果指定開啟的資料庫 KTMS 不存在,則會建立一個新的資料庫,如果已經存在,則會將其開啟。

open() 方法並不會立刻開啟資料庫,它回傳一個要求的 IDBRequest 物件,並且將其儲存於 request 變數,接下來設定這個物件的 onsueecss 與 onerror 事件屬性,如下式:

request.onerror = function (event) {
    // 處理錯誤訊息
};
request.onsuccess = function (event) {
    // event.target.result 取得連線的資料庫
};

在 onsuccess事件屬性函式中,透過 event.target.result 取得連線成功的 IDBDatabase 資料庫物件,接下來就可以透過此物件,執行各種資料庫作業,包含物件倉儲的建立以及資料的維護,後文針對這一部份將有進一步的討論。
根據 IDBRequest 定義,其中的 readyState 表示開啟作業狀態,常數 LOADING 與 DONE 是可能的狀況,前者的值是 1 ,表示載入中,後者表示載入完成,其值為 2 。

HTML5 Indexed Database API 入門系列

2 則留言:

匿名 提到...

HTML5 Indexed Database API 入門(2)
不見了...

康廷數位文教網 提到...

在這裏啊

http://www.kangting.tw/2012/07/html5-indexed-database-api-2-idbfactory.html