IDBDatabase.onversionchange
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.
Le gestionnaire d'événement onversionchange
, rattaché à l'interface IDBDatabase
, s'exécute au déclenchement de l'événement versionchange
qui se produit lorsque la structure de la base de donnée change (l'événement IDBOpenDBRequest.onupgradeneeded
ou IDBFactory.deleteDatabase
a été demandé par ailleurs (probablement dans une autre fenêtre ou onglet sur le même ordinateur)).
Cela n'est pas la même chose qu'une transaction versionchange
(bien que les concepts soient apparentés).
Note : Cette fonctionnalité est disponible via les Web Workers.
Syntaxe
db.onversionchange = function() { ... }
Exemple
Cette exemple illustre un gestionnaire d'événement IDBOpenDBRequest.onupgradeneeded
dans lequel on ajoute un magasin d'objets. Les deux gestionnaires d'événements onerror
et onabort
sont utilisés pour les cas d'échec. Le gestionnaire d'événement onversionchange
est utilisé afin d'indiquer que la structure de la base de données a été modifiée.
DBOpenRequest.onupgradeneeded = function (event) {
var db = event.target.result;
db.onerror = function () {
note.innerHTML += "<li>Erreur du chargement de la base de données.</li>";
};
db.onabort = function () {
note.innerHTML += "<li>L'ouverture de la connexion à été annulée !</li>";
};
// Ajoute un magasin d'objets à la base de données
var objectStore = db.createObjectStore("toDoList", { keyPath: "taskTitle" });
// Définition des index
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 });
note.innerHTML += "<li>Le magasin d'objet à été ajouté.</li>";
db.onversionchange = function (event) {
note.innerHTML +=
"<li>Des changements ont été appliqués sur la base de données. Vous devez réactualiser cette page ou la fermer et utiliser l'autre version de cette application qui est ouverte.</li>";
};
};
Spécifications
Specification |
---|
Indexed Database API 3.0 # eventdef-idbdatabase-versionchange |
Indexed Database API 3.0 # dom-idbdatabase-onversionchange |
Compatibilité des navigateurs
BCD tables only load in the browser
Voir aussi
- Manipuler IndexedDB
- Démarrer des transactions :
IDBDatabase
- Manipuler des transactions :
IDBTransaction
- Définir un intervalle de clés :
IDBKeyRange
- Récupérer des données et les modifier :
IDBObjectStore
- Manipuler des curseurs :
IDBCursor
- Exemple de référence pour IndexedDB : To-do Notifications