iT邦幫忙

4

Indexed Database 初探

timx 2012-07-26 23:06:342093 瀏覽

HTML5支援本地端的資料庫儲存機制,這一系列文章,介紹Indexed Database相關API
W3C以Web Storage與Indexed Database API兩組規格取代被普遍接受Web SQL Database 技術,支援本地端的資料儲存作業,這兩者也成了 HTML5 的資料儲存標準,接下來的幾篇文章針對 Indexed Database API進行討論。

首先來看看資料庫(database),它是Indexed Database機制的基礎,被用來維護資料物,你可以建立一個以上的資料庫以進行各種資料的管理護作業,每一個資料庫包含一個以上的物件倉儲(object store),是資料真正儲存的地方,就如同關聯式資料庫中的資料表。

Indexed Database API支援資料庫與物件倉儲操作所需的介面與方法成員,當你要進行資料維謢工作,第一步便是建立資料庫連線,開啟資料庫之後,接下來就是取出所要操作的物件倉儲即可開始執行資料庫作業。

建立資料庫連線所需的方法,由IDBFactory定義,也是你在實作資料處理功能之前第一個必須瞭解的介面,以下列舉其定義:

interface IDBFactory {
    IDBOpenDBRequest open (DOMString name,
[EnforceRange] optional unsigned long long version);
    IDBOpenDBRequest deleteDatabase (DOMString name);
    short cmp (any first, any second);
};

其中 open() 將執行開啟資料庫的操作,第一個參數 name 為所要開啟的資料庫名稱,而deleteDatabase 則刪除指定的資料庫,其中的參數 name 則是所要刪除的資料庫名稱。而最後一個 cmp 針對其中的兩個參數進行比較,如果first大於second回傳1,反之則是-1,兩個相等則是 0 。

無論open()或是delete(),均是以非同步進行,這些方法執行完畢之後,都將回傳一個 IDBRequest 介面定義的物件,代表對資料庫提出非同步要求所得到的回應結果,介面的定義如下:

interface IDBRequest : EventTarget {
    readonly attribute any            result;
    readonly attribute DOMError      error;
    readonly attribute Object         source;
    readonly attribute IDBTransaction transaction;
    readonly attribute DOMString      readyState;
    [TreatNonCallableAsNull]
             attribute Function?      onsuccess;
    [TreatNonCallableAsNull]
             attribute Function?      onerror;
};

其中的成員,包含支援資料庫操作所需的事件回應屬性,以及表示資料庫作業的結果屬性。

具備相關的介面概念,以下就如何建立資料庫連線,討論實際的資料庫功能實作。


1 則留言

0
ted99tw
iT邦高手 1 級 ‧ 2012-07-27 00:45:51

加油!!XD

timx iT邦新手 5 級 ‧ 2012-07-27 10:15:10 檢舉

謝謝 :D

我要留言

立即登入留言