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).
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
Spécification | État | Commentaires |
---|---|---|
Indexed Database API La définition de 'onversionchange' dans cette spécification. |
Recommendation |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support simple | 23webkit 24 |
10 moz 16.0 (16.0) |
10, partial | 15 | 7.1 |
Disponible via les web workers | (Oui) | 37.0 (37.0) | ? | (Oui) | ? |
Fonctionnalité | 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 via les web workers | (Oui) | 37.0 (37.0) | (Oui) | ? | (Oui) | ? |
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