IDBObjectStore.deleteIndex()
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.
La méthode deleteIndex()
de l'interface IDBObjectStore
supprime l'index dont le nom est passé en paramètre, du magasin d'objet relié (IDBObjectStore
).
Note :
Cette méthode ne peut être appelée que si la transaction (IDBTransaction
) de l'accès (IDBObjectStore
) au magasin d'objet est en mode (IDBTransaction.mode
) versionchange. Les propriétés indexNames (IDBObjectStore.indexNames
) des accès au magasin d'object seront aussi mises à jour.
Note : Cette fonctionnalité est disponible via les Web Workers.
Syntaxe
objectStore.deleteIndex(nomIndex);
Paramètre
- nomIndex
-
Le nom de l'index à supprimer.
Valeur de retour
Void.
Exceptions
InvalidStateError
-
Cette exception (
DOMException
) est levée si la transaction (IDBTransaction
) dont dépend cet accès (IDBObjectStore
) au magasin d'objet n'est pas en mode (IDBTransaction.mode
)versionchange
. TransactionInactiveError
-
Cette exception (
DOMException
) est levée si la transaction (IDBTransaction
) de l'accès (IDBObjectStore
) au magasin d'objet est inactive. bug 1176165). NotFoundError
-
Cette exception (
DOMException
) est levée si l'index avec le nom (case sensible) demandé n'existe pas sur le magasin d'objet.
Exemple
Dans l'exemple suivant on peut voir le gestionnaire d'événement onupgradeneeded
être utilisé pour mettre à jour la structure de la base de données quand un numéro de version supérieure est chargé.
Des méthode deleteIndex()
sont utilisées pour supprimer d'anciens index du magasin d'objet toDoList
.
var db;
// Requête d'ouverture de la base de données "toDoList"
var DBOpenRequest = window.indexedDB.open("toDoList", 4);
// Gère l'échec de l'ouverture de la base
DBOpenRequest.onerror = function (event) {
note.innerHTML += "<li>La base de donnée n'as pas peut être ouverte.</li>";
};
// Gère le succès de l'ouverture de la base
DBOpenRequest.onsuccess = function (event) {
note.innerHTML += "<li>La base de données est ouverte.</li>";
//
db = request.result;
// Exécute une fonction d'affichage displayData()
displayData();
};
// Ce gestionnaire d'événement nécessite un nouveau numéro de version de la base de données.
// Si la base n'existe pas un nouveau numéro de version est généré par la méthode d'ouverture de connexion window.indexDB.open .
DBOpenRequest.onupgradeneeded = function (event) {
db.onerror = function (event) {
note.innerHTML += "<li>Erreur de chargement de la base de données.</li>";
};
// L'Accès au magasin d'objet "toDoList" de la base de données
var objectStore = db.createObjectStore("toDoList", { keyPath: "taskTitle" });
// Met en place les index du magasin d'objet
objectStore.createIndex("heures", "hours", { unique: false });
objectStore.createIndex("minutes", "minutes", { unique: false });
objectStore.createIndex("jour", "day", { unique: false });
objectStore.createIndex("mois", "month", { unique: false });
objectStore.createIndex("annee", "year", { unique: false });
objectStore.createIndex("notifiee", "notified", { unique: false });
//supprime des index du magasin d'objet
objectStore.deleteIndex("secondes");
objectStore.deleteIndex("contact");
};
Note : Pour un exemple de travail complet, voir notre To-do Notifications app (view example live).
Spécifications
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbobjectstore-deleteindex① |
Compatibilité des navigateurs
BCD tables only load in the browser