IDBIndex: getAll()-Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
Die getAll()
-Methode der IDBIndex
-Schnittstelle ruft alle Objekte ab, die sich im Index befinden.
Es gibt einen Leistungskostenfaktor beim Betrachten der value
-Eigenschaft eines Cursors, da das Objekt verzögert erstellt wird. Um eine Funktion wie getAll()
zu verwenden, muss der Browser alle Objekte auf einmal erstellen. Wenn Sie sich zum Beispiel nur dafür interessieren, jeden der Schlüssel anzusehen, ist es effizienter, einen Cursor zu verwenden. Wenn Sie jedoch versuchen, ein Array aller Objekte in einem Object Store zu erhalten, sollten Sie getAll()
verwenden.
Syntax
getAll()
getAll(query)
getAll(query, count)
Parameter
query
Optional-
Ein Schlüssel oder ein
IDBKeyRange
, der die abzurufenden Datensätze identifiziert. Wenn dieser Wert null oder nicht angegeben ist, verwendet der Browser einen ungebundenen Schlüsselbereich. count
Optional-
Die Anzahl der zurückzugebenden Datensätze. Überschreitet dieser Wert die Anzahl der Datensätze in der Abfrage, wird der Browser nur die abgefragten Datensätze abrufen. Wenn er niedriger als
0
oder größer als2^32 - 1
ist, wird eineTypeError
-Ausnahme ausgelöst.
Rückgabewert
Ein IDBRequest
-Objekt, auf dem nachfolgende Ereignisse in Bezug auf diese Operation ausgelöst werden.
Wenn die Operation erfolgreich ist, ist der Wert der result
-Eigenschaft der Anforderung ein Array
der Werte aller Datensätze, die der gegebenen Abfrage entsprechen, bis zum Wert von count
, falls count
angegeben wurde.
Ausnahmen
Diese Methode kann eine DOMException
der folgenden Typen auslösen:
TransactionInactiveError
DOMException
-
Wird ausgelöst, wenn die Transaktion dieses
IDBIndex
nicht aktiv ist. InvalidStateError
DOMException
-
Wird ausgelöst, wenn der
IDBIndex
gelöscht oder entfernt wurde.
Eine TypeError
-Ausnahme wird ausgelöst, wenn der count
-Parameter nicht zwischen 0
und 2^32 - 1
(einschließlich) liegt.
Beispiele
const myIndex = objectStore.index("index");
const getAllRequest = myIndex.getAll();
getAllRequest.onsuccess = () => {
console.log(getAllRequest.result);
};
Spezifikationen
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbindex-getall① |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Verwendung von IndexedDB
- Transaktionen starten:
IDBDatabase
- Verwendung von Transaktionen:
IDBTransaction
- Festlegen eines Schlüsselbereichs:
IDBKeyRange
- Abrufen und Ändern Ihrer Daten:
IDBObjectStore
- Verwendung von Cursorn:
IDBCursor
- Referenzbeispiel: To-do Notifications (Beispiel live ansehen).