Le gestionnaire d'événement onabort
, rattaché à l'interface IDBTransaction
, s'exécute au déclenchement d'un événement abort
, lorsque la transaction a été annulée avec la méthode IDBTransaction.abort
.
Syntaxe
transaction.onabort = function() { ... };
Exemple
Dans le code suivant, on ouvre une connexion à la base de données. Sur cette connexion, on démarre une transaction avec IDBTransaction
en lecture/écriture pour accéder au magasin d'objets intitulé "toDoList"
et y ajouter un enregistrement (grâce à la méthode IDBObjectStore.add
). On notera également l'utilisation des gestionnaires d'événement IDBTransaction.oncomplete
et IDBTransaction.onerror
qui affichent le résultat de la transaction sur la page.
On voit ici le gestionnaire d'événement onabort
qui est utilisé pour afficher un message sur la console du développeur.
// Connexion à la base de données var DBOpenRequest = window.indexedDB.open("toDoList", 4); DBOpenRequest.onsuccess = function(event) { note.innerHTML += '<li>Connexion établie.</li>'; // On affecte la connexion à la variable db. db = DBOpenRequest.result; // On exécute la fonction addData () afin de // stocker des données dans la base addData(); }; function addData() { // Voici un nouvel objet prêt à être emmagasiné newItem = [ { taskTitle: "Walk dog", hours: 19, minutes: 30, day: 24, month: "December", year: 2013, notified: "no" } ]; // On ouvre une transaction en lecture/écriture, prête // à traiter des données sur la connexion var transaction = db.transaction(["toDoList"], "readwrite"); // On utilise oncomplete en cas de succès de // l'ouverture de la transaction transaction.oncomplete = function(event) { note.innerHTML += '<li>Transaction terminée : modification de la base de données OK.</li>'; }; // En cas d'échec de l'ouverture, ce sera // le gestionnaire onerror qui interviendra transaction.onerror = function(event) { note.innerHTML += '<li>L\'erreur: "' + transaction.error +'" s\'est produite, échec de la transaction.</li>'; }; // On ouvre l'accès au un magasin "toDoList" // dans la transaction var objectStore = transaction.objectStore("toDoList"); // Ici, l'enregistrement est ajouté var objectStoreRequest = objectStore.add(newItem[0]); objectStoreRequest.onsuccess = function(event) { // On signale l'ajout de l'enregistrement note.innerHTML += '<li>Enregistrement ajouté.</li>'; }; transaction.onabort = function() { // Ce gestionnaire permet de signaler // qu'une transaction a été annulée avec succès console.log("Transaction annulée !"); }; // On abandonne la transaction qu'on vient de faire transaction.abort(); };
Note : Pour un exemple fonctionnel complet, voir notre application To-do Notifications (exemple live disponible).
Spécifications
Spécification | État | Commentaires |
---|---|---|
Indexed Database API La définition de 'onabort' dans cette spécification. |
Recommendation |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support simple | 23webkit 24 |
10 moz 16.0 (16.0) |
10, en partie | 15 | 7.1 |
Disponible via les web workers | (Oui) | 37.0 (37.0) | ? | (Oui) | ? |
Fonctionnalité | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | 4.4 | 22.0 (22.0) | 1.0.1 | 10 | 22 | 8 |
Disponible via les web workers | (Oui) | 37.0 (37.0) | (Oui) | ? | (Oui) | ? |
Voir aussi
- Manipuler IndexedDB
- Démarrer des transactions :
IDBDatabase
- Manipuler des transactions :
IDBTransaction
- Définir un intervalle de clés :
IDBKeyRange
- Récupérer des données et les modifier :
IDBObjectStore
- Manipuler des curseurs :
IDBCursor
- Exemple de référence pour IndexedDB : To-do Notifications