IDBObjectStore: get()-Methode
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die get()
-Methode des IDBObjectStore
-Interfaces gibt ein IDBRequest
-Objekt zurück und gibt in einem separaten Thread das Objekt zurück, das durch den angegebenen Schlüssel ausgewählt wurde. Diese Methode dient zum Abrufen bestimmter Datensätze aus einem Objekt-Store.
Wenn ein Wert erfolgreich gefunden wird, wird eine strukturierte Kopie davon erstellt und als result
des Anfrage-Objekts festgelegt.
Hinweis: Diese Methode führt zum gleichen Ergebnis, wenn a) ein Datensatz nicht in der Datenbank existiert und b) ein Datensatz einen undefinierten Wert hat. Um diese Situationen zu unterscheiden, rufen Sie die openCursor()
-Methode mit dem gleichen Schlüssel auf. Diese Methode liefert einen Cursor, wenn der Datensatz existiert, und keinen Cursor, wenn er nicht existiert.
Syntax
get(key)
Parameter
key
-
Der Schlüssel oder Schlüsselbereich, der den abzurufenden Datensatz identifiziert.
Rückgabewert
Ein IDBRequest
-Objekt, auf dem sich nachfolgende Ereignisse im Zusammenhang mit dieser Operation abspielen.
Wenn die Operation erfolgreich ist, ist der Wert der result
-Eigenschaft der Anfrage der Wert des ersten Datensatzes, der mit dem angegebenen Schlüssel oder Schlüsselbereich übereinstimmt.
Ausnahmen
Diese Methode kann ein DOMException
der folgenden Typen auslösen:
TransactionInactiveError
DOMException
-
Wirft diese Ausnahme, wenn die Transaktion dieses
IDBObjectStore
inaktiv ist. DataError
DOMException
-
Wirft diese Ausnahme, wenn der angegebene Schlüssel oder Schlüsselbereich einen ungültigen Schlüssel enthält.
InvalidStateError
DOMException
-
Wirft diese Ausnahme, wenn der
IDBObjectStore
gelöscht oder entfernt wurde.
Beispiele
Im folgenden Codebeispiel öffnen wir eine Lese-/Schreibtransaktion in unserer Datenbank und holen uns einen bestimmten Datensatz aus dem Objekt-Store mittels get()
— ein Beispiel-Datensatz mit dem Schlüssel "Walk dog". Sobald dieses Datenobjekt abgerufen wurde, könnten Sie es mit normalem JavaScript aktualisieren und dann wieder in die Datenbank mit einer IDBObjectStore.put
-Operation zurücklegen. Für ein vollständiges funktionierendes Beispiel siehe unsere To-do Notifications-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
BCD tables only load in the browser
Siehe auch
- Verwendung von IndexedDB
- Starten von Transaktionen:
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).