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 wurde, eine Datenbank mit einer Versionsnummer zu öffnen, die höher ist als die aktuelle Version.

Dieses Ereignis kann nicht abgebrochen werden und löst keine Bubbling-Effekte aus.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.

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

onupgradeneeded = (event) => { }

Ereignistyp

Ein IDBVersionChangeEvent. Erbt von Event.

Event IDBVersionChangeEvent

Beispiele

Dieses Beispiel öffnet eine Datenbank und behandelt das upgradeneeded-Ereignis, indem notwendige Aktualisierungen im Objektstore vorgenommen werden.

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 jedoch die onupgradeneeded-Ereignis-Handler-Eigenschaft.

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