IDBOpenDBRequest: upgradeneeded-Ereignis
Das upgradeneeded
-Ereignis wird ausgelöst, wenn versucht wird, eine Datenbank mit einer höheren Versionsnummer als der aktuellen Version zu öffnen.
Dieses Ereignis kann nicht abgebrochen werden und wird nicht propagiert.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder legen Sie eine Event-Handler-Eigenschaft fest.
addEventListener("upgradeneeded", (event) => {});
onupgradeneeded = (event) => {};
Ereignistyp
Ein IDBVersionChangeEvent
. Erbt von Event
.
Ereigniseigenschaften
Erbt auch Eigenschaften von seiner übergeordneten Event
-Schnittstelle.
IDBVersionChangeEvent.oldVersion
Nur lesbar-
Gibt die alte Version der Datenbank zurück.
IDBVersionChangeEvent.newVersion
Nur lesbar-
Gibt die neue Version der Datenbank zurück.
Beispiele
Dieses Beispiel öffnet eine Datenbank und behandelt das upgradeneeded
-Ereignis, indem es notwendige Updates im Objekt-Store durchführt.
// Open the database
const dBOpenRequest = window.indexedDB.open("toDoList", 4);
dBOpenRequest.addEventListener("upgradeneeded", (event) => {
const db = event.target.result;
console.log(`Upgrading to version ${db.version}`);
// 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 });
});
Dies ist dasselbe Beispiel, verwendet jedoch die onupgradeneeded-Event-Handler-Eigenschaft.
// Open the database
const dBOpenRequest = window.indexedDB.open("toDoList", 4);
dBOpenRequest.onupgradeneeded = (event) => {
const db = event.target.result;
console.log(`Upgrading to version ${db.version}`);
// 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 });
};
Spezifikationen
Specification |
---|
Indexed Database API 3.0 # eventdef-idbopendbrequest-upgradeneeded |
Browser-Kompatibilität
BCD tables only load in the browser