--- title: IDBDatabase.onversionchange slug: Web/API/IDBDatabase/onversionchange tags: - API - IndexedDB - Propriété - Reference translation_of: Web/API/IDBDatabase/onversionchange ---
Le gestionnaire d'événement onversionchange
, rattaché à l'interface {{domxref("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 {{domxref("IDBOpenDBRequest.onupgradeneeded")}} ou {{domxref("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).
{{AvailableInWorkers}}
db.onversionchange = function() { ... }
Cette exemple illustre un gestionnaire d'événement {{domxref("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écification | État | Commentaires |
---|---|---|
{{SpecName('IndexedDB', '#widl-IDBDatabase-onversionchange', 'onversionchange')}} | {{Spec2('IndexedDB')}} |
{{Compat("api.IDBDatabase.onversionchange")}}