IDBFactory.open()

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)

Note : This feature is available in Web Workers.

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éthode IDBFactory.open qui contient le numéro de version de la base de données et mode de stockage à utiliser persistent ou temporary.

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

Étiquettes et contributeurs liés au document

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