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

BCD tables only load in the browser

Voir aussi