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

View in English Always switch to English

IDBDatabase: close-Ereignis

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.

Das close-Ereignis wird auf IDBDatabase ausgelöst, wenn die Datenbankverbindung unerwartet geschlossen wird. Dies kann beispielsweise passieren, wenn der zugrunde liegende Speicher entfernt wird oder wenn der Benutzer die Datenbank über die Einstellungen für den Browserverlauf löscht.

Das Ereignis wird nicht ausgelöst, wenn die Datenbankverbindung regulär mit IDBDatabase.close() geschlossen wird.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

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

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

js
onclose = (event) => { }

Ereignistyp

Ein generisches Event.

Beispiele

Dieses Beispiel öffnet eine Datenbank und überwacht das close-Ereignis:

js
// Open the database
const dBOpenRequest = window.indexedDB.open("toDoList", 4);

dBOpenRequest.onupgradeneeded = (event) => {
  const db = event.target.result;

  // 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 });
};

dBOpenRequest.onsuccess = (event) => {
  const db = dBOpenRequest.result;
  db.addEventListener("close", () => {
    console.log("Database connection closed");
  });
};

Dasselbe Beispiel verwendet die Eigenschaft onclose anstelle von addEventListener() (beachten Sie jedoch, dass dadurch gegebenenfalls andere mit onclose 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;

  // 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 });
};

dBOpenRequest.onsuccess = (event) => {
  const db = dBOpenRequest.result;
  db.onclose = () => {
    console.log("Database connection closed");
  };
};

Spezifikationen

Spezifikation
Indexed Database API 3.0
# closing-connection
Indexed Database API 3.0
# dom-idbdatabase-onclose

Browser-Kompatibilität

Siehe auch