{{APIRef()}}
The IDBFactory
interface of the IndexedDB API lets applications asynchronously access the indexed databases. The object that implements the interface is window.indexedDB
. You open — that is, create and access — and delete a database with the object and not directly with IDBFactory
.
Methods
- {{domxref("IDBFactory.open")}}
- The current method to request opening a connection to a database.
-
IDBFactory.open
{{ obsolete_inline }} - An obsolete method to request opening a connection to a database, still implemented by some browsers.
- {{domxref("IDBFactory.deleteDatabase")}}
- A method to request the deletion of a database.
- {{domxref("IDBFactory.cmp")}}
- A method that compares two keys and returns a result indicating which one is greater in value.
Example
In the following code snippet, we open a database asynchronously and make a request:
// In the following line, you should include the prefixes of implementations you want to test. window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; // DON'T use "var indexedDB = ..." if you're not in a function. // Moreover, you may need references to some window.IDB* objects: window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction; window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange; // (Mozilla has never prefixed these objects, so we don't need window.mozIDB*) // Let us open version 4 of our database var request = window.indexedDB.open("toDoList", 4); // these two event handlers act on the database being opened successfully, or not request.onerror = function(event) { note.innerHTML += '<li>Error loading database.</li>'; }; request.onsuccess = function(event) { note.innerHTML += '<li>Database initialised.</li>'; // store the result of opening the database in the db variable. This is used a lot later on, for opening transactions and suchlike. db = request.result; };
Specifications
Specification | Status | Comment |
---|---|---|
{{SpecName('IndexedDB', '#idl-def-IDBFactory', 'The IndexedDB specification, IDBFactory section')}} | {{Spec2('IndexedDB')}} |
Browser compatibility
{{ CompatibilityTable() }}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 12{{property_prefix("webkit")}} 24 |
{{ CompatGeckoDesktop("10.0") }} | 10 | 17 | {{ CompatNo() }} |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 4.4 | {{ CompatGeckoMobile("6.0") }} | 1.0.1 | 10 | 17 | {{ CompatNo() }} |
Be careful in Chrome as it still implements the old specification along the new one. Similarly it still has the prefixed webkitIndexedDB
property even if the unprefixed indexedDB
is present.