IDBRequest

L'interface IDBRequest de l'API IndexedDB donne accès par ses gestionnaires d'événements aux résultats des requêtes asynchrones sur la base de données, les magasins d'objets ou les index. Chaque opération d'écriture ou lecture sur la base de données utilise une requête.

Cet objet IDBRequest ne contient aucune information sur le résultat de l'opération, mais dès qu'une information est disponible un événement est déclenché. L'objet IDBRequest utilise ses gestionnaires d'événements pour le capter et mettre l'information à disposition.

Toute les opération asynchrone retourne immédiatement une instance IDBRequest avec une propriété readyState défini à 'pending' qui passe à  'done' lorsque la requête réussie ou échoue. Quand l'état passe à done, chaque requête retourne result et error, et un évènement est envoyé sur la requête. Quand l'état est sur pending, chaque accès à result ou error lève une exception InvalidStateError.

Pour faire simple, chaque méthode asynchrome retourne un objet de requête. Si l'opération réussi, le résultat est disponible dans la propriété result et un évènement success est lancé (IDBRequest.onsuccess). Si une erreur est rencontrée, une exeption est disponible dans la propriété error et un évènement error est lancé (IDBRequest.onerror).

L'interface IDBOpenDBRequest est dérivé de IDBRequest.

Note : Cette fonctionnalité est disponible via les Web Workers.

Propriétés

Hérite des propriétés de EventTarget.

result Lecture seule
La propriété result de l'interface IDBRequest renvoie le résultat de la requête. Si la requête est en cours, échoue ou que le résultat n'est pas disponible, l'exception InvalidStateError est levée.
error Lecture seule
La propriété error de l'interface IDBRequest indique le code de l'erreur survenue durant le traitement de la requête. Si la requête est en cours l'exception InvalidStateError est levée.
source Lecture seule
La propriété source de l'interface IDBRequest renvoie la source de la requête, tel qu'un index, un magasin d'ojets ou null s'il n'y a pas de source (lors de l'appel indexedDB.open par exemple).
transaction Lecture seule
La propriété transaction de l'interface IDBRequest renvoie la transaction dans laquelle on fait la requête. La propriété peut renvoyer null si requête se fait sans transaction, comme un objet IDBRequest renvoyé par IDBFactory.open dans ce cas on est juste connecté à la base de données.
readyState Lecture seule
La propriété readyState de l'interface IDBRequest renvoie l'état de la requête. Chaque requête débute avec un statut pending et passe au statut done quand la requête réussie ou échoue.

Méthodes

Pas de méthodes spécifiques, mais hérite des méthodes de EventTarget.

Gestionnaire d'événement

On peut écouter les évènement avec addEventListener() ou bien en assignant un gestionnaire d'évènement à la propriété oneventname de cette interface.

onerror
Le gestionnaire d'événement onerror de l'interface IDBRequest capte l'événement error, déclenché quand une requête renvoie une erreur.
onsuccess
Le gestionnaire d'événement onsuccess de l'interface IDBRequest capte l'événement success, déclenché quand la requête réussie.

Exemple

Dans l'exemple suivant, on ouvre une base de données et on fait une requête. Les gestionnaires d'événement onsuccess et onerror sont inclus. Pour un exemple de travail complet, voir notre application To-do Notifications (voir l'exemple en direct).

var db;

// Ouvre une base de données.
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

// Ces deux gestionnaires d'événement interviennent quand la dase de
// de données s'ouvre ou non.
DBOpenRequest.onerror = function(event) {
  note.innerHTML += '<li>Error loading database.</li>';
};

DBOpenRequest.onsuccess = function(event) {
  note.innerHTML += '<li>Database initialised.</li>';

  // Affecte le resutat de l'ouverture à la variable.
  db = DBOpenRequest.result;
};

Spécifications

Spécification Statut Commentaire
Indexed Database API 2.0
La définition de 'IDBRequest' dans cette spécification.
Recommendation Définition initiale.
Indexed Database API Draft
La définition de 'IDBRequest' dans cette spécification.
Recommendation

Compatibilité avec les navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
IDBRequestChrome Support complet 24
Support complet 24
Aucun support 2 — 57
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Edge Support complet 12Firefox Support complet 16
Support complet 16
Aucun support 10 — 16
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : moz
IE Support partiel 10Opera Support complet 15Safari Support complet 7WebView Android Support complet Oui
Support complet Oui
Aucun support ? — 57
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Chrome Android Support complet 25
Support complet 25
Aucun support 25 — 57
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Firefox Android Support complet 22Opera Android Support complet 14Safari iOS Support complet 8Samsung Internet Android Support complet 1.5
Support complet 1.5
Aucun support 1.5 — 7.0
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
errorChrome Support complet 24
Support complet 24
Aucun support 23 — 57
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Edge Support complet 12Firefox Support complet 16
Support complet 16
Aucun support 10 — 16
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : moz
IE Support partiel 10Opera Support complet 15Safari Support complet 7WebView Android Support complet Oui
Support complet Oui
Aucun support ? — 57
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Chrome Android Support complet 25
Support complet 25
Aucun support 25 — 57
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Firefox Android Support complet 22Opera Android Support complet 14Safari iOS Support complet 8Samsung Internet Android Support complet 1.5
Support complet 1.5
Aucun support 1.5 — 7.0
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
error eventChrome Support complet 24
Support complet 24
Support complet 23
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Edge Support complet 12Firefox Support complet 16
Support complet 16
Aucun support 10 — 16
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : moz
IE Support partiel 10Opera Support complet 15Safari Support complet 7WebView Android Support complet OuiChrome Android Support complet OuiFirefox Android Support complet 22Opera Android Support complet 14Safari iOS Support complet 8Samsung Internet Android Support complet Oui
onerrorChrome Support complet 24
Support complet 24
Support complet 23
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Edge Support complet 12Firefox Support complet 16
Support complet 16
Aucun support 10 — 16
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : moz
IE Support partiel 10Opera Support complet 15Safari Support complet 7WebView Android Support complet OuiChrome Android Support complet OuiFirefox Android Support complet 22Opera Android Support complet 14Safari iOS Support complet 8Samsung Internet Android Support complet Oui
onsuccessChrome Support complet 24
Support complet 24
Support complet 23
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Edge Support complet 12Firefox Support complet 16
Support complet 16
Aucun support 10 — 16
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : moz
IE Support partiel 10Opera Support complet 15Safari Support complet 7WebView Android Support complet OuiChrome Android Support complet OuiFirefox Android Support complet 22Opera Android Support complet 14Safari iOS Support complet 8Samsung Internet Android Support complet Oui
readyStateChrome Support complet 24
Support complet 24
Support complet 23
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Edge Support complet 12Firefox Support complet 16
Support complet 16
Aucun support 10 — 16
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : moz
IE Support partiel 10Opera Support complet 15Safari Support complet 7WebView Android Support complet OuiChrome Android Support complet OuiFirefox Android Support complet 22Opera Android Support complet 14Safari iOS Support complet 8Samsung Internet Android Support complet Oui
resultChrome Support complet 24
Support complet 24
Support complet 23
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Edge Support complet 12Firefox Support complet 16
Support complet 16
Aucun support 10 — 16
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : moz
IE Support partiel 10Opera Support complet 15Safari Support complet 7WebView Android Support complet OuiChrome Android Support complet OuiFirefox Android Support complet 22Opera Android Support complet 14Safari iOS Support complet 8Samsung Internet Android Support complet Oui
sourceChrome Support complet 24
Support complet 24
Support complet 23
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Edge Support complet 12Firefox Support complet 16
Support complet 16
Aucun support 10 — 16
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : moz
IE Support partiel 10Opera Support complet 15Safari Support complet 7WebView Android Support complet OuiChrome Android Support complet OuiFirefox Android Support complet 22Opera Android Support complet 14Safari iOS Support complet 8Samsung Internet Android Support complet Oui
success eventChrome Support complet 24
Support complet 24
Support complet 23
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Edge Support complet 12Firefox Support complet 16
Support complet 16
Aucun support 10 — 16
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : moz
IE Support partiel 10Opera Support complet 15Safari Support complet 7WebView Android Support complet OuiChrome Android Support complet OuiFirefox Android Support complet 22Opera Android Support complet 14Safari iOS Support complet 8Samsung Internet Android Support complet Oui
transactionChrome Support complet 24
Support complet 24
Support complet 23
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Edge Support complet 12Firefox Support complet 16
Support complet 16
Aucun support 10 — 16
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : moz
IE Support partiel 10Opera Support complet 15Safari Support complet 7WebView Android Support complet OuiChrome Android Support complet OuiFirefox Android Support complet 22Opera Android Support complet 14Safari iOS Support complet 8Samsung Internet Android Support complet Oui
Available in workersChrome Support complet OuiEdge Support complet ≤79Firefox Support complet 37IE ? Opera Support complet OuiSafari ? WebView Android Support complet OuiChrome Android Support complet OuiFirefox Android Support complet 37Opera Android Support complet OuiSafari iOS ? Samsung Internet Android Support complet Oui

Légende

Support complet  
Support complet
Support partiel  
Support partiel
Compatibilité inconnue  
Compatibilité inconnue
Cette fonctionnalité nécessite un préfixe particulier ou utilise un autre nom.
Cette fonctionnalité nécessite un préfixe particulier ou utilise un autre nom.

Voir aussi