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
La définition de 'onerror' dans cette spécification.
Recommendation  

Compatibilité avec les 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,