IDBOpenDBRequest: upgradeneeded-Ereignis
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Das upgradeneeded-Ereignis wird ausgelöst, wenn versucht wird, eine Datenbank mit einer höheren Versionsnummer als ihrer aktuellen zu öffnen.
Dieses Ereignis kann nicht abgebrochen werden und steigt nicht im DOM-Baum auf.
Syntax
Verwenden Sie den Ereignisnamen in addEventListener():
addEventListener("upgradeneeded", (event) => { })
Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:
onupgradeneeded = (event) => { }
Ereignistyp
Ein IDBVersionChangeEvent. Erbt von Event.
Beispiele
Dieses Beispiel öffnet eine Datenbank und verarbeitet das upgradeneeded-Ereignis, indem es alle erforderlichen Änderungen am Object Store vornimmt.
// 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 aber die Event-Handler-Eigenschaft onupgradeneeded. Beachten Sie, dass dadurch gegebenenfalls andere über onupgradeneeded hinzugefügte Event-Listener ersetzt werden.
// 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
| Spezifikation |
|---|
| Indexed Database API 3.0> # eventdef-idbopendbrequest-upgradeneeded> |