IDBRequest
Baseline
Widely available
*
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
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.
resultLecture seule-
La propriété
resultde l'interfaceIDBRequestrenvoie 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'exceptionInvalidStateErrorest levée. errorLecture seule-
La propriété
errorde l'interfaceIDBRequestindique le code de l'erreur survenue durant le traitement de la requête. Si la requête est en cours l'exceptionInvalidStateErrorest levée. sourceLecture seule-
La propriété
sourcede l'interfaceIDBRequestrenvoie la source de la requête, tel qu'unindex, unmagasin d'ojetsounulls'il n'y a pas de source (lors de l'appelindexedDB.openpar exemple). transactionLecture seule-
La propriété
transactionde l'interfaceIDBRequestrenvoie latransactiondans laquelle on fait la requête. La propriété peut renvoyernullsi requête se fait sans transaction, comme un objet IDBRequest renvoyé parIDBFactory.opendans ce cas on est juste connecté à la base de données. readyStateLecture seule-
La propriété
readyStatede l'interfaceIDBRequestrenvoie l'état de la requête. Chaque requête débute avec un statutpendinget passe au statutdonequand 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.
Exemple
Dans l'exemple suivant, on ouvre une base de données et on fait une requête. Les gestionnaires d'événement et onsuccess sont inclus. Pour un exemple de travail complet, voir notre application To-do Notifications (voir l'exemple en direct).onerror
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
| Specification |
|---|
| Indexed Database API 3.0> # request-api> |
Compatibilité des navigateurs
Chargement…
Voir aussi
- Utiliser IndexedDB
- Démarrer une transaction:
IDBDatabase - Utiliser les transactions:
IDBTransaction - Définir un intervalle de clés:
IDBKeyRange - Récupérer et modifier vos données:
IDBObjectStore - utiliser les curseurs:
IDBCursor - Exemple de référence: To-do Notifications (view example live.)