IDBObjectStore: keyPath Eigenschaft
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 keyPath schreibgeschützte Eigenschaft des IDBObjectStore-Interfaces gibt den Schlüsselpfad dieses Objekt-Speichers zurück.
Wenn diese Eigenschaft null ist, muss die Anwendung einen Schlüssel für jede Änderungsoperation bereitstellen.
Wert
Jeder Werttyp.
Beispiele
Im folgenden Code-Snippet öffnen wir eine Lese-/Schreibtransaktion in unserer Datenbank und fügen mit add() einige Daten zu einem Objekt-Speicher hinzu. Nachdem der Objekt-Speicher erstellt wurde, geben wir objectStore.keyPath in der Konsole aus. 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 addData() function to add the data to the database addData(); }; function addData() { // Create a new object ready to insert into the IDB const newItem = [ { taskTitle: "Walk dog", hours: 19, minutes: 30, day: 24, month: "December", year: 2013, notified: "no", }, ]; // open a read/write db transaction, ready for adding 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. Duplicate items not allowed."; }; // create an object store on the transaction const objectStore = transaction.objectStore("toDoList"); console.log(objectStore.keyPath); // Make a request to add our newItem object to the object store const objectStoreRequest = objectStore.add(newItem[0]); objectStoreRequest.onsuccess = (event) => { // report the success of our request note.appendChild(document.createElement("li")).textContent = "Request successful."; }; } Spezifikationen
| Specification |
|---|
| Indexed Database API 3.0> # ref-for-dom-idbobjectstore-keypath①> |
Browser-Kompatibilität
Siehe auch
- Verwenden von IndexedDB
- Starten von Transaktionen:
IDBDatabase - Verwenden von Transaktionen:
IDBTransaction - Festlegen eines Bereichs von Schlüsseln:
IDBKeyRange - Abrufen und Ändern von Daten:
IDBObjectStore - Verwenden von Cursorn:
IDBCursor - Referenzbeispiel: To-do Notifications (Beispiel live ansehen).