IDBTransaction.onabort
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
.
Note: Cette fonctionnalité est disponible via les Web Workers.
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 2.0 La définition de 'onabort' dans cette spécification. |
Recommendation |
Compatibilité des navigateurs
BCD tables only load in the browser
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