IDBObjectStore.delete()
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 delete()
, rattachée à l'interface IDBObjectStore
, renvoie un objet IDBRequest
et, dans un thread séparé, supprime le ou les enregistrements concernés.
Cette méthode prend une clé ou un objet IDBKeyRange
en argument ce qui permet de supprimer un ou plusieurs enregistrements. Si on souhaite supprimer l'ensemble des enregistrements d'un magasin de données, on utilisera plutôt la méthode IDBObjectStore.clear
.
Note : Cette fonctionnalité est disponible via les Web Workers.
Syntaxe
var request = objectStore.delete(keyOrKeyRange);
Paramètres
keyOrKeyRange
-
La clé de l'enregistrement qu'on souhaite supprimer ou un objet
IDBKeyRange
qui indique l'intervalle de clés à supprimer.
Valeur de retour
Un objet IDBRequest
qui recevra les évènements relatifs à cette opération. request.result
vaut undefined
.
Exceptions
Cette méthode peut lever une des exceptions suivantes :
Exception | Description |
---|---|
TransactionInactiveError |
La transaction associée au curseur IDBCursor est inactive. |
ReadOnlyError |
La transaction est uniquement en lecture seule. |
InvalidStateError |
Le curseur créé avec IDBindex.openKeyCursor , est en train d'être parcouru ou a été parcouru après sa fin. |
DataError |
La clé ou l'intervalle de clés n'est pas valide. |
Exemples
Dans l'exemple qui suit, on ouvre une transaction en lecture/écriture et on supprime un enregistrement donné grâce à delete()
. Pour un exemple complet, voir l'application Notifications To-do (démonstration).
// On ouvre l'accès à la base de données
var DBOpenRequest = window.indexedDB.open("toDoList", 4);
DBOpenRequest.onsuccess = function (event) {
note.innerHTML += "<li>Initialisation de la base</li>";
// On enregistre le résultat de l'ouverture
// dans la variable db.
var db = DBOpenRequest.result;
// On utilise deleteData() pour supprimer
// un enregistrement
deleteData();
};
function deleteData() {
// On ouvre une transaction en lecture/écriture
// afin de supprimer la donnée
var transaction = db.transaction(["toDoList"], "readwrite");
// On indique le succès de la transaction
transaction.oncomplete = function (event) {
note.innerHTML +=
"<li>Transaction terminée : modification de la base terminée.</li>";
};
transaction.onerror = function (event) {
note.innerHTML +=
"<li>Transaction interrompue suite à l'erreur : " +
transaction.error +
"</li>";
};
// On crée un magasin d'objets pour la transaction
var objectStore = transaction.objectStore("toDoList");
// On supprime l'enregistrement du magasin
var objectStoreRequest = objectStore.delete("Walk dog");
objectStoreRequest.onsuccess = function (event) {
// On indique le succès de l'opération
note.innerHTML += "<li>Enregistremnt supprimé.</li>";
};
}
Spécifications
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbobjectstore-delete① |
Compatibilité des navigateurs
BCD tables only load in the browser
Voir aussi
- Utiliser IndexedDB
- Initier une connexion :
IDBDatabase
- Utiliser les transactions :
IDBTransaction
- Définir un intervalle de clés :
IDBKeyRange
- Récupérer et modifier les données :
IDBObjectStore
- Utiliser les curseurs
IDBCursor
- L'exemple de référence : notifications de trucs à faire (voir la démonstration)