--- title: IDBObjectStore.delete() slug: Web/API/IDBObjectStore/delete tags: - API - IndexedDB - Méthode - Reference translation_of: Web/API/IDBObjectStore/delete ---
La méthode delete()
, rattachée à l'interface {{domxref("IDBObjectStore")}}, renvoie un objet {{domxref("IDBRequest")}} et, dans un thread séparé, supprime le ou les enregistrements concernés.
Cette méthode prend une clé ou un objet {{domxref("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 {{domxref("IDBObjectStore.clear")}}.
{{AvailableInWorkers}}
var request = objectStore.delete(keyOrKeyRange);
keyOrKeyRange
Un objet {{domxref("IDBRequest")}} qui recevra les évènements relatifs à cette opération. request.result
vaut {{jsxref("undefined")}}.
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 {{domxref("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. |
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écification | État | Commentaires |
---|---|---|
{{SpecName('IndexedDB', '#widl-IDBObjectStore-delete-IDBRequest-any-key', 'delete()')}} | {{Spec2('IndexedDB')}} |
Fonctionnalité | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Support simple | 23{{property_prefix("webkit")}} 24 |
{{CompatVersionUnknown}} | 10 {{property_prefix("moz")}} {{CompatGeckoDesktop("16.0")}} |
10, partial | 15 | 7.1 |
Disponible dans les web workers | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile("37.0")}} | {{CompatUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} |
Fonctionnalité | Android | Webview Android | Edge | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile | Chrome pour Android |
---|---|---|---|---|---|---|---|---|---|
Support simple | 4.4 | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile("22.0")}} | 1.0.1 | 10 | 22 | 8 | {{CompatVersionUnknown}} |
Disponible dans les web workers | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile("37.0")}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatVersionUnknown}} |