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
js
var requete = ObjectStore.openCursor(optionalKeyRange, optionalDirection);
Paramètres
rangeFacultatif-
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. directionFacultatif-
Un objet
IDBCursorDirectionqui 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 :
js
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).