IDBFactory: open() method
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
Note: This feature is available inWeb Workers.
Theopen()
method of theIDBFactory
interface requests opening aconnection to a database.
The method returns anIDBOpenDBRequest
object immediately, and performs the open operation asynchronously.If the operation is successful, asuccess
event is fired on the request object that is returned from this method, with itsresult
attribute set to the newIDBDatabase
object for the connection.
May triggerupgradeneeded
,blocked
orversionchange
events.
Syntax
open(name)open(name, version)
Parameters
name
The name of the database.
version
OptionalOptional. The version to open the database with. If the version is not provided and the database exists, then a connection to the database will be opened without changing its version.If the version is not provided and the database does not exist, then it will be created with version
1
.
Return value
AIDBOpenDBRequest
object on which subsequent events related to this request are fired.
If the operation is successful, the value of the request'sresult
property is aIDBDatabase
object representing the connection to the database.
Exceptions
TypeError
Thrown if the value of
version
is not a number greater than zero.
Examples
Example of callingopen
with the current specification'sversion
parameter:
const request = window.indexedDB.open("toDoList", 4);
In the following code snippet, we make a request to open a database, and include handlers for the success and error cases.For a full working example, see ourTo-do Notifications app (View the example live).
const note = document.querySelector("ul");// Let us open version 4 of our databaseconst DBOpenRequest = window.indexedDB.open("toDoList", 4);// these two event handlers act on the database being opened// successfully, or notDBOpenRequest.onerror = (event) => { note.appendChild(document.createElement("li")).textContent = "Error loading database.";};DBOpenRequest.onsuccess = (event) => { note.appendChild(document.createElement("li")).textContent = "Database initialized."; // store the result of opening the database in the db // variable. This is used a lot later on, for opening // transactions and suchlike. db = DBOpenRequest.result;};
Specifications
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbfactory-open② |
Browser compatibility
See also
- Using IndexedDB
- Browser storage quotas and eviction criteria.
- Starting transactions:
IDBDatabase
- Using transactions:
IDBTransaction
- Setting a range of keys:
IDBKeyRange
- Retrieving and making changes to your data:
IDBObjectStore
- Using cursors:
IDBCursor
- Reference example:To-do Notifications (View the example live).