IDBDatabase: createObjectStore() 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 createObjectStore() Methode der IDBDatabase Schnittstelle erstellt und gibt einen neuen IDBObjectStore zurück.
Die Methode nimmt den Namen des Speichers sowie ein Parameterobjekt entgegen, das es Ihnen ermöglicht, wichtige optionale Eigenschaften zu definieren. Sie können die Eigenschaft verwenden, um einzelne Objekte im Speicher eindeutig zu identifizieren. Da die Eigenschaft ein Identifikator ist, sollte sie für jedes Objekt einzigartig sein, und jedes Objekt sollte diese Eigenschaft haben.
Diese Methode kann nur innerhalb einer versionchange Transaktion aufgerufen werden.
Syntax
createObjectStore(name)
createObjectStore(name, options)
Parameter
name-
Der Name des neuen zu erstellenden Objektspeichers. Beachten Sie, dass es möglich ist, einen Objektspeicher mit einem leeren Namen zu erstellen.
optionsOptional-
Ein Optionsobjekt, dessen Attribute optionale Parameter für die Methode sind. Es enthält die folgenden Eigenschaften:
keyPathOptional-
Der Schlüsselpfad, der vom neuen Objektspeicher verwendet werden soll. Wenn leer oder nicht angegeben, wird der Objektspeicher ohne Schlüsselpfad erstellt und verwendet außerhalb liegende Schlüssel. Sie können auch ein Array als
keyPathübergeben. autoIncrementOptional-
Wenn
true, hat der Objektspeicher einen Schlüsselerzeuger. Standardmäßig istfalse.
Rückgabewert
Ein neuer IDBObjectStore.
Ausnahmen
Diese Methode kann eine DOMException mit einem name der folgenden Typen auslösen:
ConstraintErrorDOMException-
Wird ausgelöst, wenn ein Objektspeicher mit dem angegebenen Namen (basierend auf einem groß- und kleinschreibungssensitiven Vergleich) bereits in der verbundenen Datenbank existiert.
InvalidAccessErrorDOMException-
Wird ausgelöst, wenn
autoIncrementauf true gesetzt ist undkeyPathentweder ein leerer String oder ein Array ist. InvalidStateErrorDOMException-
Wird ausgelöst, wenn die Methode nicht aus einem
versionchangeTransaktions-Callback aufgerufen wurde. SyntaxError-
Wird ausgelöst, wenn die
keyPathOption einen ungültigen Schlüsselpfad enthält. TransactionInactiveErrorDOMException-
Wird ausgelöst, wenn eine Anfrage an eine Quell-Datenbank gestellt wird, die nicht existiert (zum Beispiel, wenn die Datenbank gelöscht oder entfernt wurde), oder wenn die zugehörige Upgrade-Transaktion abgeschlossen oder dabei ist, eine Anfrage zu verarbeiten.
Beispiele
// Let us open our database
const request = window.indexedDB.open("toDoList", 4);
// This handler is called when a new version of the database
// is created, either when one has not been created before
// or when a new version number is submitted by calling
// window.indexedDB.open().
// This handler is only supported in recent browsers.
request.onupgradeneeded = (event) => {
const db = event.target.result;
db.onerror = (event) => {
note.appendChild(document.createElement("li")).textContent =
"Error loading database.";
};
// Create an objectStore for this database
const objectStore = db.createObjectStore("toDoList", {
keyPath: "taskTitle",
});
// define what data items the objectStore will contain
objectStore.createIndex("hours", "hours", { unique: false });
objectStore.createIndex("minutes", "minutes", { unique: false });
objectStore.createIndex("day", "day", { unique: false });
objectStore.createIndex("month", "month", { unique: false });
objectStore.createIndex("year", "year", { unique: false });
objectStore.createIndex("notified", "notified", { unique: false });
note.appendChild(document.createElement("li")).textContent =
"Object store created.";
};
Spezifikationen
| Specification |
|---|
| Indexed Database API 3.0> # ref-for-dom-idbdatabase-createobjectstore①> |
Browser-Kompatibilität
Loading…
Siehe auch
- Verwenden von IndexedDB
- Transaktionen starten:
IDBDatabase - Verwendung von Transaktionen:
IDBTransaction - Festlegen eines Bereichs von Schlüsseln:
IDBKeyRange - Abrufen und Ändern Ihrer Daten:
IDBObjectStore - Verwendung von Cursoren:
IDBCursor - Referenzbeispiel: To-do-Benachrichtigungen (Beispiel live ansehen).