IDBObjectStore.openCursor()
La méthode openCursor()
, rattachée à l'interface IDBObjectStore
, renvoie un objet IDBRequest
et, dans un thread séparé, renvoie un nouvel objet IDBCursorWithValue
(en-US) qu'on peut utiliser pour parcourir un magasin d'objets avec un curseur.
Afin de déterminer si l'opération s'est déroulée correctement, on pourra surveiller l'évènement success
.
Note: Cette fonctionnalité est disponible via les Web Workers
Syntaxe
var requete = ObjectStore.openCursor(optionalKeyRange, optionalDirection);
Paramètres
range
Facultatif-
Une clé ou un intervalle de clés (
IDBKeyRange
) qu'on souhaite parcourir. Si une seule clé est passée en argument, l'intervalle utilisé pour le curseur sera restreint à cette seule clé. Si aucune valeur n'est passée pour cet argument, l'intervalle utilisé pour le curseur englobera tous les enregistrements du magasin d'objets. direction
Facultatif-
Un objet
IDBCursorDirection
qui indique la direction de parcours du curseur. La valeur par défaut est"next"
.
Valeur de retour
Un objet IDBRequest
sur lequel seront déclenchés les évènements relatifs à l'opération.
Exceptions
Cette méthode peut déclencher une exception DOMException
ayant l'un des types suivants :
Exception | Description |
---|---|
InvalidStateError |
L'objet IDBObjectStore ou l'objet IDBIndex a été supprimé. |
TransactionInactiveError |
La transaction rattachée au magasin d'objets (IDBObjectStore ) est inactive. |
DataError |
La clé ou l'intervalle de clés indiqué est invalide. |
Exemples
Dans ce fragment de code, on crée une transaction, on ouvre le magasin d'objets souhaité puis on place un curseur pour parcourir tous les enregistrements du magasin d'objets :
var transaction = db.transaction("name", "readonly");
var objectStore = transaction.objectStore("name");
var request = objectStore.openCursor();
request.onsuccess = function(event) {
var cursor = event.target.result;
if(cursor) {
// cursor.value contient l'enregistrement courant
// pendant le parcours, on peut éventuellement le manipuler ici
cursor.continue();
} else {
// il n'y a plus de résultats
}
};
Spécifications
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbobjectstore-opencursor② |
Compatibilité des navigateurs
BCD tables only load in the browser
Voir aussi
- Utiliser IndexedDB
- Initier une connexion :
IDBDatabase
- Utiliser les transactions :
IDBTransaction
- Définir un intervalle de clés :
IDBKeyRange
- Récupérer et modifier les données :
IDBObjectStore
- Utiliser les curseurs
IDBCursor
- Exemple de référence : To-do Notifications (exemple live).