IDBOpenDBRequest
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
L'interface IDBOpenDBRequest de l'API IndexedDB donne un accès aux résultats des requêtes permettant d'ouvrir ou de supprimer des bases de donnée (Effectuée via IDBFactory.open et IDBFactory.deleteDatabase).
Note : Cette fonctionnalité est disponible via les Web Workers.
Propriétés
Hérite des méthodes de ses parents IDBRequest et EventTarget.
Évènements
IDBOpenDBRequest.onblocked-
Le gestionnaire d'évènements pour l'évènement bloqué. Cet évènement est lancé lorsqu'un évènement
upgradeneededdoit être déclenché en raison d'un changement de version, mais que la base de données est toujours en cours d'utilisation (c'est-à-dire, non fermée) quelque part, même après l'envoi de l'évènementversionchange. IDBOpenDBRequest.onupgradeneeded-
Le gestionnaire d'évènement pour évènement
upgradeneeded(mise-à-jour nécessaire), lancé quand une base de données d'une version supérieure à celle de la base de données existante est chargé.
Méthodes
Pas de méthodes, mais hérite des méthodes de ses parents IDBRequest et EventTarget.
Exemple
Dans l'exemple ci-dessous, le gestionnaire onupgradeneeded est utilisé pour mettre à jour la structure de la base de données, si une base plus récente est chargée. Pour voir un exemple complet, référez-vous à notre application To-do Notifications (voir cet exemple réel)
var db;
// Ouvre la base de données.
var DBOpenRequest = window.indexedDB.open("toDoList", 4);
// Ces gestionnaires d'évènements agissent sur la base de données en cours d'ouverture.
note.innerHTML += '<li>Error loading database.</li>';
};
DBOpenRequest.onsuccess = function(event) {
note.innerHTML += '<li>Database initialised.</li>';
// stocke le résultat de l'ouverture de la base de données dans la variable db .
// Ceci est beaucoup moins utilisé.
db = DBOpenRequest.result;
// Exécute la fonction displayData() pour remplir la liste de tâches
// avec toutes les données de la lste de tâches déjà dans la base.
displayData();
};
// Cet évènement gère l'évènement par lequel une nouvelle version
// de la base de données doit être créée. Soit elle n'a pas
// été créée avant, soit un nouveau numéro de version a été
// soumis via la ligne "window.indexedDB.open" ci-dessous.
// Il n'est implémenté que dans les navigateurs récents.
DBOpenRequest.onupgradeneeded = function(event) {
var db = this.result;
db.onerror = function(event) {
note.innerHTML += '<li>Error loading database.</li>';
};
// Crée un objet de stockage pour cette base de données.
var objectStore = db.createObjectStore("toDoList", { keyPath: "taskTitle" });
// définit quels éléments de données l'objet de stockage contiendra.
objectStore.createIndex("hours", "hours", { unique: false });
objectStore.createIndex("minutes", "minutes", { unique: false });
objectStore.createIndex("day", "day", { unique: false });
objectStore.createIndex("month", "month", { unique: false });
objectStore.createIndex("year", "year", { unique: false });
objectStore.createIndex("notified", "notified", { unique: false });
};
Spécifications
| Specification |
|---|
| Indexed Database API 3.0> # idbopendbrequest> |
Compatibilité des navigateurs
Chargement…
Voir aussi
- Utiliser IndexedDB
- Démarrage de transactions :
IDBDatabase - Utilisation de transactions :
IDBTransaction - Définition un intervalle de clés :
IDBKeyRange - Récupération et modification des données :
IDBObjectStore - Utilisation de curseurs :
IDBCursor - Exemple de référence : To-do Notifications (view example live.)