Cet article nécessite une relecture technique. Voici comment vous pouvez aider.
Cet article nécessite une relecture rédactionnelle. Voici comment vous pouvez aider.
La méthode open()
de l'interface IDBFactory
demande l'ouverture d'une connection à une base de données.
La méthode renvoie immediatement un objet IDBOpenDBRequest
et effectue l'ouverture de manière asynchrone. Lorsque la connection est ouverte, un événement success
est déclenché sur l'objet IDBOpenDBRequest
renvoyé et sa propriété result
contient le nouvel objet de connection IDBDatabase
. Si une erreur se produit lors de l'overture un événement error est déclenché sur l'objet IDBOpenDBRequest renvoyé.
Peut aussi déclencher des événements upgradeneeded
(mise à niveau nécessaire), blocked
(bloqué) ou versionchange
(changement de version)
Syntaxe
Pour la version standard:
request = window.indexedDB.open(name[, version])
Pour la version expérimentale avec options
(voir ci-dessous):
request = window.indexedDB.open(name[, options])
Paramètres
- name
- Le nom de la base de données.
- version
- Optionnel.
La version de la base de données à ouvrir. Si la version n'est pas indiquée et que la base de données existe, une connexion à la base de données sera ouverte sans changer son numéro de version. Si la version n'est pas indiquée et que la base de données n'existe pas alors une nouvelle base de données seras ouverte à la version
1
. . - options (version et stockage)
- Optionnel.
Depuis Gecko version 26, On peut inclure en paramère un objet
options
à la méthodeIDBFactory.open
qui contient le numéro deversion
de la base de données et mode de stockage à utiliserpersistent
outemporary
.
Note: Vous pouvez trouver plus d'informations sur les différents types de stockage disponibles, et comment Firefox gére le stockage de données côté client, aux limites de stockage du navigateur et les critères d'exclusions.
Renvoie
Un objet IDBOpenDBRequest
sur lequel les événements ultérieurs relatifs à cette demande seront déclenché.
Exceptions
Cette méthode peu lévée une DOMException
de type:
Exception | Déscription |
---|---|
TypeError |
La valeur de version n'est pas un nombre ou un nombre inferieur ou égal à zero |
Exemple
Exemple d'appel à open
avec le paramètre de version
:
var request = window.indexedDB.open("toDoList", 4);
Exemple d'appel à open
avec un objet options
en paramètre:
var request = window.indexedDB.open("toDoList", {version: 4, storage: "temporary"});
Dans l'exemple suivant, on demande l'ouverture d'une base de données, et insère les gestionnaires d'événement en cas de réussite ou d'échec. Pour un exemple de travail complet, voir notre To-do Notifications app (view example live.)
var note = document.querySelector("ul"); // Dans la ligne suivante, vous devez inclure les préfixes des implémentations que vous souhaitez tester. window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; // N'utiliser pas "var indexedDB = ..." si vous n'êtes pas dans une fonction. //En outre, vous aurez peut-être besoin d'autres objets window.IDB*: window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction; window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange; // (Mozilla n'a jamais préfixé ces objets, donc pas besoin window.mozIDB*) // Ouvrons la version 4 de notre base de données var DBOpenRequest = window.indexedDB.open("toDoList", 4); // ces deux gestionnaires d'événements informe sur l'ouverture avec succès, ou non de la base de données. DBOpenRequest.onerror = function(event) { note.innerHTML += 'Error loading database.'; }; DBOpenRequest.onsuccess = function(event) { note.innerHTML += 'Database initialised.'; }; //Affecte à la variable db le résultat de l'ouverture. C'est utile plus tard pour l'ouverture des transactions et autres. db = request.result; };
Spécifications
Spécification | Statut | Commentaire |
---|---|---|
Indexed Database API La définition de 'open()' dans cette spécification. |
Recommendation |
Compatibilité avec les navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support basique | 23webkit 24 |
10 moz 16.0 (16.0) |
10, en partie | 15 | 7.1 |
Disponible dans workers | (Oui) | 37.0 (37.0) | ? | (Oui) | ? |
Foncionnalité | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support basique | 4.4 | 22.0 (22.0) | 1.0.1 | 10 | 22 | 8 |
Disponible dans workers | (Oui) | 37.0 (37.0) | (Oui) | ? | (Oui) | ? |
Voir aussi
- Using IndexedDB
- 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 example live.)