HTML5 Indexed Database API 入門(15) - 索引搜尋

HTML5 Indexed Database API 入門系列

索引物件另外支援特定範圍的資料存取,同樣的,這必須透過 openCursor() 方法,進一步來看看這個方法的定義:

IDBRequest openCursor (
optional any? range,
optional DOMString direction);

其中包含兩個選擇性的參數, range 則是要取回的資料內容範圍,另外一個參數 direction 表示 cursor 的資料巡覽方向,接下來的範例,示範最簡單的資料搜尋操作。

function list() {            
                var transaction = db.transaction([objectStoreName]);
                var store = transaction.objectStore(objectStoreName);
                // skey 為欲取得的索引鍵
                var keyRange = IDBKeyRange.only(skey);
                var idx = store.index('idx_cat');
                var crequest = idx.openCursor(keyRange);           
                crequest.onsuccess = function (event) {
                    var cursor = event.target.result;
                    if (cursor) {                
                         //   cursor.key : 索引鍵
      //   cursor.value : 索引對應的值
                        cursor.continue();
                    } else {
                        // 跳出... 
                    }
                };
        }

IDBKeyRange.only() 取得需要的 IDBKeyRange 物件 keyRange ,再以此為參數調取得 cursor ,完成搜尋資料的操作。

HTML5 Indexed Database API 入門系列


沒有留言: