IDBOpenDBRequest: upgradeneeded-Ereignis
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
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
Schreibgeschützt-
Gibt die alte Version der Datenbank zurück.
IDBVersionChangeEvent.newVersion
Schreibgeschützt-
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