IDBOpenDBRequest

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.

EventTarget IDBRequest IDBOpenDBRequest

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ènement versionchange.

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)

js
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