IDBTransaction.onerror
Le gestionnaire d'événement onerror
, rattaché à l'interface IDBTransaction
, s'exécute au déclenchement d'un événement error
lorsque la transaction échoue.
Note: Cette fonctionnalité est disponible via les Web Workers
Syntaxe
transaction.onerror = function() { ... };
Exemple
Dans le code suivant, on commence par ouvrir une connexion à la base de donnée. Grâce à cette connexion, on initialise une transaction en lecture/écriture grâce à IDBTransaction
pour accéder au magasin d'objets intitulé toDoList
et y ajouter un enregistrement via la méthode IDBObjectStore.add
. On notera également l'utilisation du gestionnaire d'événements IDBTransaction.oncomplete
.
Le gestionnaire d'événement onerror
de la transaction affiche le code d'erreur de la propriété propriété error
sur la page.
// 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 () pour ajouter
// des données dans la base
addData();
};
function addData() {
// On crée 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 de lecture / écriture
// pour traiter les données via la connexion
var transaction = db.transaction(["toDoList"], "readwrite");
// En cas de succès de l'ouverture de la transaction
// on utilise ce gestionnaire
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 de la transaction
// on utilisera ce gestionnaire
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 magasin "toDoList" de la transaction
var objectStore = transaction.objectStore("toDoList");
// Enfin on ajoute un enregistrement
var objectStoreRequest = objectStore.add(newItem[0]);
objectStoreRequest.onsuccess = function(event) {
// On signale l'ajout de l'enregistrement
note.innerHTML += '<li>Enregistrement ajouté.</li>';
};
};
Note : Pour un exemple de travail complet, voir l'application To-do Notifications (exemple live disponible ici).
Spécifications
Spécification | État | Commentaires |
---|---|---|
Indexed Database API 2.0 La définition de 'onerror' dans cette spécification. |
Recommendation |
Compatibilité des navigateurs
No compatibility data found for api.IDBTransaction.onerror
.
Check for problems with this page or contribute missing data to mdn/browser-compat-data.
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