IDBObjectStore: get()-Methode
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die get()-Methode der IDBObjectStore-Schnittstelle gibt ein IDBRequest-Objekt zurück und, in einem separaten Thread, das Objekt, das durch den angegebenen Schlüssel ausgewählt wird. Dies dient zum Abrufen spezifischer Datensätze aus einem Objektspeicher.
Wenn ein Wert erfolgreich gefunden wird, dann wird ein strukturierter Klon davon erstellt und als result des Anfrage-Objekts gesetzt.
Hinweis:
Diese Methode liefert dasselbe Ergebnis für: a) einen Datensatz, der nicht in der Datenbank existiert, und b) einen Datensatz, der einen undefinierten Wert hat.
Um diese Situationen zu unterscheiden, rufen Sie die openCursor()-Methode mit demselben Schlüssel auf. Diese Methode stellt einen Cursor bereit, wenn der Datensatz existiert, und keinen Cursor, wenn er nicht existiert.
Syntax
get(key)
Parameter
key-
Der Schlüssel oder der Schlüsselbereich, der den abzurufenden Datensatz identifiziert.
Rückgabewert
Ein IDBRequest-Objekt, bei dem nachfolgende Ereignisse im Zusammenhang mit diesem Vorgang ausgelöst werden.
Wenn der Vorgang erfolgreich ist, ist der Wert der result-Eigenschaft der Anfrage der Wert des ersten Datensatzes, der dem angegebenen Schlüssel oder Schlüsselbereich entspricht.
Ausnahmen
Diese Methode kann eine DOMException eines der folgenden Typen auslösen:
TransactionInactiveErrorDOMException-
Wird ausgelöst, wenn die Transaktion dieses
IDBObjectStoreinaktiv ist. DataErrorDOMException-
Wird ausgelöst, wenn der angegebene Schlüssel oder Schlüsselbereich einen ungültigen Schlüssel enthält.
InvalidStateErrorDOMException-
Wird ausgelöst, wenn das
IDBObjectStoregelöscht oder entfernt wurde.
Beispiele
Im folgenden Codeabschnitt öffnen wir eine Lese-/Schreibtransaktion auf unserer Datenbank und holen einen bestimmten Datensatz aus dem Objektspeicher mit get() — einen Beispiel-Datensatz mit dem Schlüssel "Walk dog". Sobald dieses Datenobjekt abgerufen wurde, können Sie es mit normalem JavaScript aktualisieren und dann mit einer put()-Operation wieder in die Datenbank einfügen. Für ein vollständig funktionierendes Beispiel siehe unsere To-do-Benachrichtigungen-App (Beispiel live ansehen).
// Let us open our database
const DBOpenRequest = window.indexedDB.open("toDoList", 4);
DBOpenRequest.onsuccess = (event) => {
note.appendChild(document.createElement("li")).textContent =
"Database initialized.";
// store the result of opening the database in the db variable.
// This is used a lot below
db = DBOpenRequest.result;
// Run the getData() function to get the data from the database
getData();
};
function getData() {
// open a read/write db transaction, ready for retrieving the data
const transaction = db.transaction(["toDoList"], "readwrite");
// report on the success of the transaction completing, when everything is done
transaction.oncomplete = (event) => {
note.appendChild(document.createElement("li")).textContent =
"Transaction completed.";
};
transaction.onerror = (event) => {
note.appendChild(document.createElement("li")).textContent =
`Transaction not opened due to error: ${transaction.error}`;
};
// create an object store on the transaction
const objectStore = transaction.objectStore("toDoList");
// Make a request to get a record by key from the object store
const objectStoreRequest = objectStore.get("Walk dog");
objectStoreRequest.onsuccess = (event) => {
// report the success of our request
note.appendChild(document.createElement("li")).textContent =
"Request successful.";
const myRecord = objectStoreRequest.result;
};
}
Spezifikationen
| Specification |
|---|
| Indexed Database API 3.0> # ref-for-dom-idbobjectstore-get①> |
Browser-Kompatibilität
Loading…
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-Benachrichtigungen (Beispiel live ansehen).