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
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

Étiquettes et contributeurs liés au document

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