IDBIndex: Methode getAll()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.
Die Methode getAll() der Schnittstelle IDBIndex ruft alle Objekte ab, die sich im Index befinden.
Der Zugriff auf die Eigenschaft value eines Cursors ist mit einem Leistungsaufwand verbunden, da das Objekt erst bei Bedarf erstellt wird. Um eine Funktion wie getAll() zu verwenden, muss der Browser alle Objekte auf einmal erstellen. Wenn Sie beispielsweise nur die einzelnen Schlüssel betrachten möchten, ist die Verwendung eines Cursors effizienter. Wenn Sie hingegen ein Array aller Objekte in einem Object Store abrufen möchten, sollten Sie getAll() verwenden.
Syntax
getAll()
getAll(query)
getAll(query, count)
getAll(options)
Parameter
Die Methode getAll() kann separate Parameter oder ein einzelnes Optionsobjekt entgegennehmen, das die Parameter als Eigenschaften enthält.
Die Parameter können Folgendes umfassen:
queryOptional-
Ein Schlüssel oder ein
IDBKeyRange, der die abzurufenden Datensätze bestimmt. Wenn dieser Wertnullist oder nicht angegeben wird, verwendet der Browser einen unbegrenzten Schlüsselbereich. countOptional-
Die Anzahl der zurückzugebenden Datensätze. Wenn dieser Wert die Anzahl der Datensätze in der Abfrage übersteigt, ruft der Browser nur die abgefragten Datensätze ab. Wenn er kleiner als
0oder größer als2^32 - 1ist, wird eineTypeError-Ausnahme ausgelöst.
Wenn ein Objektparameter angegeben wird, kann er folgende Eigenschaften enthalten:
queryOptional-
Siehe die obige Definition von
query. countOptional-
Siehe die obige Definition von
count. directionOptional-
Ein Aufzählungswert, der die Richtung angibt, in der die Objekte durchlaufen werden. Mögliche Werte sind:
next-
Die Objekte werden vom Anfang aus in aufsteigender Schlüsselreihenfolge durchlaufen. Dies ist der Standardwert.
nextunique-
Die Objekte werden vom Anfang aus in aufsteigender Schlüsselreihenfolge durchlaufen. Für jeden Schlüssel mit mehreren Objekten wird nur das Objekt geliefert, das dem Anfang am nächsten liegt.
prev-
Die Objekte werden vom Ende aus in absteigender Schlüsselreihenfolge durchlaufen.
prevunique-
Die Objekte werden vom Ende aus in absteigender Schlüsselreihenfolge durchlaufen. Für jeden Schlüssel mit mehreren Objekten wird nur das Objekt geliefert, das dem Anfang am nächsten liegt.
Rückgabewert
Ein IDBRequest-Objekt, auf dem nachfolgende Ereignisse im Zusammenhang mit diesem Vorgang ausgelöst werden.
Wenn der Vorgang erfolgreich ist, enthält die Eigenschaft result der Anfrage ein Array mit den Werten aller Datensätze, die der angegebenen Abfrage entsprechen, gegebenenfalls begrenzt durch count.
Ausnahmen
Diese Methode kann eine DOMException der folgenden Typen auslösen:
TransactionInactiveErrorDOMException-
Wird ausgelöst, wenn die Transaktion dieses
IDBIndexinaktiv ist. InvalidStateErrorDOMException-
Wird ausgelöst, wenn der
IDBIndexgelöscht oder entfernt wurde. TypeError-
Wird ausgelöst, wenn der Parameter
countnicht zwischen0und2^32 - 1einschließlich liegt.
Beispiele
const myIndex = objectStore.index("index");
const getAllRequest = myIndex.getAll();
getAllRequest.onsuccess = () => {
console.log(getAllRequest.result);
};
Spezifikationen
| Spezifikation |
|---|
| Indexed Database API 3.0> # ref-for-dom-idbindex-getall①> |
Browser-Kompatibilität
Siehe auch
- IndexedDB verwenden
- Transaktionen starten:
IDBDatabase - Transaktionen verwenden:
IDBTransaction - Einen Schlüsselbereich festlegen:
IDBKeyRange - Daten abrufen und ändern:
IDBObjectStore - Cursor verwenden:
IDBCursor - Referenzbeispiel: To-do Notifications (Beispiel live ansehen).