Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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():

js
addEventListener("upgradeneeded", (event) => { })

Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:

js
onupgradeneeded = (event) => { }

Ereignistyp

Ein IDBVersionChangeEvent. Erbt von Event.

Event IDBVersionChangeEvent

Beispiele

Dieses Beispiel öffnet eine Datenbank und verarbeitet das upgradeneeded-Ereignis, indem es alle erforderlichen Änderungen am Object Store vornimmt.

js
// 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.

js
// 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

Browser-Kompatibilität

Siehe auch