Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
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'interfaceIDBRequest 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 objetIDBRequest 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'objetIDBRequest utilise ses gestionnaires d'événements pour le capter et mettre l'information à disposition.
Toute les opération asynchrone retourne immédiatement une instanceIDBRequest 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 retourneresult eterror, et un évènement est envoyé sur la requête. Quand l'état est surpending, chaque accès àresult ouerror lève une exceptionInvalidStateError.
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ènementsuccess est lancé (IDBRequest.onsuccess). Si une erreur est rencontrée, une exeption est disponible dans la propriétéerror et un évènementerror est lancé (IDBRequest.onerror).
L'interfaceIDBOpenDBRequest est dérivé deIDBRequest.
Note : Cette fonctionnalité est disponible via lesWeb Workers.
Dans cet article
Propriétés
Hérite des propriétés deEventTarget.
resultLecture seuleLa 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 seuleLa 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 seuleLa 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 seuleLa 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 seuleLa 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 deEventTarget.
Gestionnaire d'événement
On peut écouter les évènement avecaddEventListener() 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 etonsuccess sont inclus. Pour un exemple de travail complet, voir notre applicationTo-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
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.)