MDN wants to talk to developers like you: https://qsurvey.mozilla.com/s3/8d22564490d8

IDBObjectStore.delete()

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

Spécification État Commentaires
Indexed Database API
La définition de 'delete()' dans cette spécification.
Recommendation  

Compatibilité des navigateurs

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support simple 23webkit
24
(Oui) 10 moz
16.0 (16.0)
10, partial 15 7.1
Disponible dans les web workers (Oui) ? 37.0 (37.0) ? (Oui) ?
Fonctionnalité Android Webview Android Edge Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile Chrome pour Android
Support simple 4.4 (Oui) (Oui) 22.0 (22.0) 1.0.1 10 22 8 (Oui)
Disponible dans les web workers (Oui) (Oui) ? 37.0 (37.0) (Oui) ? (Oui) ? (Oui)

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight, gadgino
 Dernière mise à jour par : SphinxKnight,