IDBIndex: getAll() 方法
getAll() 方法是 IDBIndex 介面的一部分,用於檢索索引中的所有物件。
訪問遊標的 value 屬性會產生效能開銷,因為物件是惰性建立的。為了使用像 getAll() 這樣的功能,瀏覽器需要一次性建立所有物件。如果您只對檢視每個鍵感興趣,那麼使用 遊標 會更有效。但是,如果您想獲取物件儲存中所有物件的陣列,則應該使用 getAll()。
語法
js
getAll()
getAll(query)
getAll(query, count)
引數
query可選-
用於標識要檢索的記錄的鍵或
IDBKeyRange。如果此值為空或缺失,瀏覽器將使用無界鍵範圍。 count可選-
要返回的記錄數。如果此值超過了查詢中的記錄數,瀏覽器將僅檢索查詢到的記錄。如果它低於
0或大於2^32 - 1,則會丟擲TypeError異常。
返回值
一個 IDBRequest 物件,後續與此操作相關的事件會在此物件上觸發。
如果操作成功,請求的 result 屬性的值是所有匹配給定查詢的記錄值的 Array,最多可達 count 值(如果提供了 count)。
異常
此方法可能會引發以下型別的 DOMException
TransactionInactiveErrorDOMException-
如果此
IDBIndex的事務處於非活動狀態,則會丟擲此異常。 InvalidStateErrorDOMException-
如果
IDBIndex已被刪除或移除,則會丟擲此異常。
如果 count 引數不是包含在 0 和 2^32 - 1 之間,則會丟擲 TypeError 異常。
示例
js
const myIndex = objectStore.index("index");
const getAllRequest = myIndex.getAll();
getAllRequest.onsuccess = () => {
console.log(getAllRequest.result);
};
規範
| 規範 |
|---|
| Indexed Database API 3.0 # ref-for-dom-idbindex-getall① |
瀏覽器相容性
載入中…
另見
- 使用 IndexedDB
- 開始事務:
IDBDatabase - 使用事務:
IDBTransaction - 設定鍵的範圍:
IDBKeyRange - 檢索和修改資料:
IDBObjectStore - 使用遊標:
IDBCursor - 參考示例:待辦事項通知(檢視即時示例)。