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():
addEventListener("close", (event) => { })
Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:
onclose = (event) => { }
Ereignistyp
Ein generisches Event.
Beispiele
Dieses Beispiel öffnet eine Datenbank und überwacht das close-Ereignis:
// 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):
// 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> |