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 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

Spécification État Commentaires
Indexed Database API
La définition de 'openCursor' dans cette spécification.
Recommendation  

Compatibilité des navigateurs

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support simple 23webkit
24
(Oui) 10 moz
16.0 (16.0)
10, partial 15 7.1
Disponible dans les web workers (Oui) ? 37.0 (37.0) ? (Oui) ?
Fonctionnalité Android Webview Android Edge Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile Chrome pour Android
Support simple 4.4 (Oui) (Oui) 22.0 (22.0) 1.0.1 10 22 8 (Oui)
Disponible dans les web workers Pas de support (Oui) ? 37.0 (37.0) (Oui) ? (Oui) ? (Oui)

Voir aussi

Étiquettes et contributeurs liés au document

 Dernière mise à jour par : SphinxKnight,