MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

IDBFactory.open()

La méthode open(), rattachée à l'interface IDBFactory, lance une requête pour ouvrir une connexion à une base de données.

La méthode renvoie immédiatement un objet IDBOpenDBRequest puis effectue l'opération d'ouverture de façon asynchrone. Si l'opération réussit, un évènement success sera déclenché sur l'objet IDBOpenDBRequest renvoyé par la méthode et la propriété result de l'évènement aura la valeur de l'objet IDBDatabase associé à la connexion.

Si une erreur se produit lors de la connexion, un évènement error sera déclenché sur l'objet IDBOpenDBRequest renvoyé par la méthode.

Cette méthode peut également déclencher les évènements upgradeneeded, blocked ou versionchange.

Note : Cette fonctionnalité est disponible via les Web Workers.

Syntaxe

La syntaxe standard est la suivante :

var IDBOpenDBRequest = indexedDB.open(nom);
var IDBOpenDBRequest = indexedDB.open(nom, version);

Il existe également une version expérimentale qui prend en compte des options supplémentaires (cf. ci-après) :

var IDBOpenDBRequest = indexedDB.open(nom);
var IDBOpenDBRequest = indexedDB.open(nom, options);

Paramètres

nom
Le nom de la base de données qu'on souhaite ouvrir.
version Facultatif
Paramètre optionnel qui représente la version de la base de données qu'on veut ouvrir. Si ce paramètre n'est pas fourni et que la base de données existe, une connexion sera ouverte sans changer la version de la base de données. Si ce paramètre n'est pas fourni est que la base de données n'existe pas, elle sera créée avec une version 1.
options (version et stockage) Facultatif
Paramètre optionnel disponible dans Gecko à partir de la version 26. Il est possible d'inclure un objet options en paramètre qui contienne le numéro de version de la base de données (équivalent donc au paramètre version définit ci-avant) et une valeur de stockage qui permet de choisir si on souhaite utiliser un stockage permanent (avec la valeur persistent) ou un stockage temporaire (avec la valeur temporary).

Note : Vous pouvez consulter l'article : les limites de stockage du navigateur et les critères d'expulsion pour en savoir plus sur les différents types de stockage disponibles et la façon dont Firefox gère les données côté client.

Valeur de retour

Un objet IDBOpenDBRequest sur lequel sont déclenchés les différents évènements liés à cette requête.

Exceptions

Cette méthode peut lever une exception TypeError lorsque la valeur du paramètre version est négative ou n'est pas un nombre

Exemples

Voici un exemple d'ouverture de la base de données toDoList en utilisant la syntaxe standard et le paramètre version :

var request = window.indexedDB.open("toDoList", 4);

La ligne qui suit illustre comment utiliser le paramètre options (non-standard) :

var request = window.indexedDB.open("toDoList", {version: 4, storage: "temporary"});

Dans le fragment de code qui suit, on effectue une requête pour ouvrir une base de données et on inclue des gestionnaires d'évènements pour gérer la réussite ou l'échec de l'ouverture. Pour consulter un exemple fonctionnel complet, vous pouvez étudier notre application To-do Notifications (cf. l'exemple live).

var note = document.querySelector("ul");

window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;

// On ouvre la version 4 de la base de données
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

// On ajoute deux gestionnaires d'évènements
// Le premier utilisé en cas d'échec
DBOpenRequest.onerror = function(event) {
  note.innerHTML += '<li>Erreur lors du chargement de la base.</li>';
};
 
// Et le second en cas de réussite
DBOpenRequest.onsuccess = function(event) {
  note.innerHTML += '<li>Base de données initialisée.</li>';
    
  // On stocke le résultat de l'ouverture dans la 
  // variable db qui sera utilisée par la suite
  // pour d'autres opérations
  db = DBOpenRequest.result;
};

Spécifications

Spécification État Commentaires
Indexed Database API
La définition de 'open()' dans cette spécification.
Recommendation  
Indexed Database API 2.0
La définition de 'open()' dans cette spécification.
Brouillon de l'éditeur  

Compatibilité des navigateurs

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support simple 23webkit
24 (sans préfixe)
(Oui) 10 moz
16.0 (16.0)
10, partial 15 7.1
Disponible dans les web workers (Oui) (Oui) 37.0 (37.0) ? (Oui) ?
Fonctionnalité Android Webview Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile Chrome pour Android
Support simplet 4.4 (Oui) (Oui) 22.0 (22.0) 10 22 8 (Oui)
Disponible dans les web workers (Oui) (Oui) (Oui) 37.0 (37.0) ? (Oui) ? (Oui)

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, gadgino
 Dernière mise à jour par : SphinxKnight,