IDBKeyRange: bound() statische 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.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die bound()
statische Methode des IDBKeyRange
Interfaces erstellt einen neuen Schlüsselbereich mit den angegebenen oberen und unteren Grenzen. Die
Grenzen können offen sein (das heißt, die Grenzen schließen die Endpunktwerte aus) oder geschlossen sein (das
heißt, die Grenzen schließen die Endpunktwerte ein). Standardmäßig sind die Grenzen geschlossen.
Syntax
IDBKeyRange.bound(lower, upper)
IDBKeyRange.bound(lower, upper, lowerOpen)
IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen)
Parameter
lower
-
Gibt die untere Grenze des neuen Schlüsselbereichs an.
upper
-
Gibt die obere Grenze des neuen Schlüsselbereichs an.
lowerOpen
Optional-
Gibt an, ob die untere Grenze den Endpunktwert ausschließt. Der Standardwert ist false.
upperOpen
Optional-
Gibt an, ob die obere Grenze den Endpunktwert ausschließt. Der Standardwert ist false.
Rückgabewert
IDBKeyRange
: Der neu erstellte Schlüsselbereich.
Ausnahmen
DataError
DOMException
-
Wird ausgelöst, wenn eine der folgenden Bedingungen erfüllt ist:
- Die Parameter lower oder upper wurden kein gültiger Schlüssel übergeben.
- Der untere Schlüssel ist größer als der obere Schlüssel.
- Der untere und obere Schlüssel stimmen überein und eine der Grenzen ist offen.
Beispiele
Das folgende Beispiel zeigt, wie Sie einen gebundenen Schlüsselbereich verwenden würden. Hier deklarieren wir
einen keyRangeValue = IDBKeyRange.bound("A", "F");
— einen Bereich zwischen den Werten von
"A" und "F". Wir öffnen eine Transaktion (mit IDBTransaction
) und einen Objekt-
speicher und öffnen einen Cursor mit IDBObjectStore.openCursor
,
wobei wir keyRangeValue
als seinen optionalen Schlüsselbereichswert angeben. Das bedeutet, dass
der Cursor nur Datensätze mit Schlüsseln innerhalb dieses Bereichs abruft. Dieser Bereich schließt
die Werte "A" und "F" ein, da wir nicht angegeben haben, dass sie offene Grenzen sein sollten. Wenn wir
IDBKeyRange.bound("A", "F", true, true);
verwendet hätten, würde der Bereich
"A"
und "F"
nicht einschließen, sondern nur die Werte dazwischen.
Hinweis: Für ein vollständigeres Beispiel, das Ihnen ermöglicht, mit Schlüsselbereichen zu experimentieren, schauen Sie sich das Verzeichnis idbkeyrange im indexeddb-examples Repository an. (Sehen Sie sich das Beispiel auch live an.)
function displayData() {
const keyRangeValue = IDBKeyRange.bound("A", "F");
const transaction = db.transaction(["fThings"], "readonly");
const objectStore = transaction.objectStore("fThings");
objectStore.openCursor(keyRangeValue).onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
const listItem = document.createElement("li");
listItem.textContent = `${cursor.value.fThing}, ${cursor.value.fRating}`;
list.appendChild(listItem);
cursor.continue();
} else {
console.log("Entries all displayed.");
}
};
}
Spezifikationen
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbkeyrange-bound① |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Verwendung von IndexedDB
- Starten von Transaktionen:
IDBDatabase
- Verwendung von Transaktionen:
IDBTransaction
- Festlegen eines Bereichs von Schlüsseln:
IDBKeyRange
- Abrufen und Ändern Ihrer Daten:
IDBObjectStore
- Verwendung von Cursors:
IDBCursor
- Referenzbeispiel: To-do Notifications (Sehen Sie sich das Beispiel live an).