The close
event is fired on IDBDatabase
when the database connection is unexpectedly closed. This could happen, for example, if the underlying storage is removed or if the user clears the database in the browser's history preferences.
Note that it is not fired if the database connection is closed normally using IDBDatabase.close()
.
Bubbles | No |
---|---|
Cancelable | No |
Interface | Event |
Event handler property | onerror |
Examples
This example opens a database and listens for the close
event:
// 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'); }); };
The same example, using the onclose
property instead of addEventListener()
:
// 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'); }; };
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
close event | Chrome Full support 31 | Edge Full support ≤18 | Firefox Full support 50 | IE ? | Opera Full support Yes | Safari Full support 10.1 | WebView Android Full support Yes | Chrome Android Full support 31 | Firefox Android Full support 50 | Opera Android Full support Yes | Safari iOS Full support 10.3 | Samsung Internet Android Full support 2.0 |
Legend
- Full support
- Full support
- Compatibility unknown
- Compatibility unknown
See also
- Using IndexedDB
onclose
event handler property