IDBOpenDBRequest
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
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
upgradeneeded
doit ê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
BCD tables only load in the browser
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.)