Cet article nécessite une relecture technique. Voici comment vous pouvez aider.
Cet article nécessite une relecture rédactionnelle. Voici comment vous pouvez aider.
La méthode abort()
de l'interface IDBTransaction
annule toutes les modifications éffectué par les accès aux magasins d'objets
de la transaction
puis déclenche l'événement abort.
La valeur de la propriété error
de chaque requête
effectuée par latransaction
sera AbortError
.
Syntaxe
transaction.abort();
Renvoie
Void
.
Exception
InvalidStateError
- Cette
exception
est levé si la transaction est déjà terminé ou annulé.
Exemple
Dans le code suivant, on ouvre une connexion
à la base de donnée. Sur cette connexion on démarre une transaction
en lecture/écriture pour accéder au magasin d'objet
"toDoList" et y ajouterr
un enregistrement. Notez également les gestionnaires d'événements oncomplete
et onerror
de la transaction qui affiche sur la page le résultat de la transaction.
La méthode abort
de la transaction
sert à la fin pour l'annuler. Notez le bloque transaction.onabort = function(event) {...}
qui affiche un message sur la console.
//Connexion à la base de données var DBOpenRequest = window.indexedDB.open("toDoList", 4); DBOpenRequest.onsuccess = function(event) { note.innerHTML += '<li>Connexion établie.</li>'; //Affecte la connexion à la variable db. db = DBOpenRequest.result; // Exécutez la fonction addData () pour emmagasiné les données dans la base addData(); }; function addData() { // Un nouvel objet prêt à être emmagasiné newItem = [ { taskTitle: "Walk dog", hours: 19, minutes: 30, day: 24, month: "December", year: 2013, notified: "no" } ]; // ouvre une transaction de lecture / écriture prête au traitement des données sur la connexion var transaction = db.transaction(["toDoList"], "readwrite"); // en cas de succès de l'ouverture de la transaction transaction.oncomplete = function(event) { note.innerHTML += '<li>Transaction complété : modification de la base de données terminée.</li>'; }; // en cas d'échec de l'ouverture de la transaction transaction.onerror = function(event) { note.innerHTML += '<li>L\'erreur: "' + transaction.error +'" c\'est produite échec de la transaction.</li>'; }; // ouvre l'accès au magasin d'objets "toDoList" de la transaction var objectStore = transaction.objectStore("toDoList"); // Ajoute un enregistrement var objectStoreRequest = objectStore.add(newItem[0]); objectStoreRequest.onsuccess = function(event) { // signale l'ajout de l'enregistrement note.innerHTML += '<li>Enregistrement ajouté.</li>'; }; transaction.onabort = function() { //Signale qu'une transaction a été annulée avec succès console.log("Transaction annulée!"); }; // Abandonner la transaction que nous venons de faire transaction.abort(); };
Pour un exemple de travail complet, voir notre To-do Notifications app (view example live).
Spécification
Spécification | Statut | Commentaire |
---|---|---|
Indexed Database API La définition de 'abort' dans cette spécification. |
Recommendation |
Compatibilité avec les navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support basique | 23webkit 24 |
10 moz 16.0 (16.0) |
10, en partie | 15 | 7.1 |
Disponible dans workers | (Oui) | 37.0 (37.0) | ? | (Oui) | ? |
Fonctionnalité | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support basique | 4.4 | 22.0 (22.0) | 1.0.1 | 10 | 22 | 8 |
Disponible dans workers | (Oui) | 37.0 (37.0) | (Oui) | ? | (Oui) | ? |