--- title: IndexedDB slug: Web/API/IndexedDB_API translation_of: Web/API/IndexedDB_API ---
De asynchrone API methoden geven feedback zonder de oproepende thread te blokkeren.
Om asynchrone toegang tot een database te verkrijgen roep je open() op het indexedDB attribuut van een window object. Deze methode stuurt een IDBRequest object (IDBOpenDBRequest); asynchrone operaties communiceren met de oproepende applicatie door events uit te voeren op IDBRequest objecten.
Notitie: Het indexedDB object heeft een prefix in oudere browserversies (eigendom mozIndexedDB in Gecko < 16, webkitIndexedDB in Chrome, en msIndexedDB in IE 10).
IDBFactory voorziet toegang tot een database. Dit is de interface die geïmplementeerd is door het globale object indexedDB en het is daarom het startpunt van de API.IDBCursor itereert over object stores en indexen.IDBCursorWithValue Itereert over object stores en indexen en stuurt de huidige waarde van de cursor terug.IDBDatabase stelt een connectie naar de database voor, het is de enige manier om een transactie te verkrijgen op de database.IDBEnvironment voorziet toegang tot een client gebaseerde database. Het is geïmplementeerd door window objecten.IDBIndex voorziet toegang tot de metadata van een index.IDBKeyRange definieert een bereik van sleutels.IDBObjectStore stelt een object store voor.IDBOpenDBRequest stelt een aanvraag voor om de database te openen.IDBRequest voorziet toegang tot resultaten van asynchrone aanvragen naar databases en database objecten. Je verkrijgt dit wanneer je een asynchrone methode oproept.IDBTransaction stelt een transactie voor. Je maakt een transactie op de database, specifieert de omvang (zoals welke object stores je toegang toe wil verkrijgen), en bepaal de soort van toegang die je wil (enkel lezen of schrijven).IDBVersionChangeEvent duidt aan dat de versie van de database is veranderd.Een vroege versie van de specificatie definieert ook deze nu verwijderde interfaces. Ze zijn nog steeds gedocumenteerd in geval u oudere code moet aanpassen:
IDBVersionChangeRequest stelt een aanvraag voor om de versie van een database te veranderen. De manier om de database aan te passen is sindsdien veranderd (door IDBFactory.open() op te roepen zonder ook IDBDatabase.setVersion()op te roepen), en de interface IDBOpenDBRequest heeft nu de functionaliteit van het verwijderde IDBVersionChangeRequest.IDBDatabaseException {{ obsolete_inline() }} stelt uitzonderingcondities voor die kunnen voorkomen bij het uitvoeren van database operaties.Er is ook een synchronone versie van de API. De synchrone API is nog in geen enkele browser geïmplementeerd. Het is bedoeld om te werken met WebWorkers.
Er is geen limiet op een enkel database item qua omvang.
Echter kan er wel een limiet zijn op elke indexedDB database omvang.
Deze limiet (en hoe de gebruikerinterface deze zal verklaren) kan variëren per browser.
Firefox: geen limiet op de IndexedDB database omvang. De gebruikersinterface zal enkel permissie vragen om blobs groter dan 50MB op te slaan. Deze quota kan aangepast worden via de dom.indexedDB.warningQuota instelling (dewelke gedefinieerd is in http://mxr.mozilla.org/mozilla-central/source/modules/libpref/src/init/all.js).
Een krachtig voorbeeld waarvoor indexedDB gebruikt kan worden op het web is een voorbeeld door Marco Castelluccio, winnaar van de IndexedDB Mozilla DevDerby. De winnende demo was eLibri, een bibliotheek en eBook lezer applicatie.
{{ CompatibilityTable() }}
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Asynchronous API |
24.0 |
{{ CompatGeckoDesktop("16.0") }} {{ CompatGeckoDesktop("2.0") }} {{ property_prefix("moz") }} |
10 | 15.0 | {{ CompatNo() }} |
| Synchronous API (used with WebWorkers) |
{{ CompatNo() }} | {{ CompatNo() }} See {{ bug(701634) }} |
{{ CompatNo() }} | {{ CompatNo() }} | {{ CompatNo() }} |
| Feature | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| Asynchronous API | {{ CompatNo() }} | {{ CompatGeckoDesktop("6.0") }} {{ property_prefix("moz") }} | {{ CompatNo() }} | {{ CompatNo() }} | {{ CompatNo() }} |
Er is ook de mogelijkheid om IndexedDB te gebruiken op oudere browsers die WebSQL ondersteunen door gebruik te maken van IndexedDB Polyfill.
setVersion() methode.") }}