IDBDatabase: close event

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

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
close eventChrome Full support 31Edge Full support ≤18Firefox Full support 50IE ? Opera Full support YesSafari Full support 10.1WebView Android Full support YesChrome Android Full support 31Firefox Android Full support 50Opera Android Full support YesSafari iOS Full support 10.3Samsung Internet Android Full support 2.0

Legend

Full support
Full support
Compatibility unknown
Compatibility unknown

See also