Cet article nécessite une relecture technique. Voici comment vous pouvez aider.
Cet article nécessite une relecture rédactionnelle. Voici comment vous pouvez aider.
La méthode openKeyCursor()
de l'interface IDBObjectStore
fait une requête
récursive suivant un curseur
qui itère le magasin d'objet relié
.
Syntaxe
var reques = objectStore.openKeyCursor(optionalKeyRange, optionalDirection);
Paramètres
- optionalKeyRange Facultatif
- L'
intervalle de clé
sur lequel se déplace le curseur. On peut passer un clé seule qui sera alors considéré comme uneintervalle seule
. Par default le curseur se deplace sur l'ensemble des clés du magasin d'objet. - optionalDirection Facultatif
- La
direction
ducurseur
qui défini le sens d'itération. par défaut "next".
Renvoie
Exceptions
TransactionInactiveError
- Cette
exception
est levé si latransaction
est inactive. DataError
- Cette
exception
est levé si la clé ou l'intervalle de clé
est invalide. InvalidStateError
- Cette
exception
est levé si le magasin d'objet ou l'index à été supprimé.
Exemple
Dans ce morceau de code on fait une transaction pour obtenir l'accès au magasin d'objet sur lequel on itère en utilisant un curseur.
La méthode openKeyCursor()
initialise la requête récursive qui contiendra le curseur.
//un transaction sur la base de données var transaction = db.transaction("name", "readonly"); //un accès au magsin d'objet "name" var objectStore = transaction.objectStore("name"); //Une requête récursive var request = objectStore.openKeyCursor(); request.onsuccess = function() { var cursor = request.result; if(cursor) { // cursor.key la clé de l'enregistrement à la position du curseur // il n'y as pas de cursor.value contrairement à openCursor() console.log(cursor.key); //on relance la requête pour la position suivante du curseur cursor.continue(); } else { //pas ou plus de curseur , fin d'itération. } };
Spécification
Specification | Status | Comment |
---|---|---|
Indexed Database API (Second Edition) La définition de 'openKeyCursor' dans cette spécification. |
Recommendation |
Compatibilité avec les navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support basique | 48.0 | 27.0 (27.0) | 10, partial | 15 | 7.1 |
Fonctionnalité | Android | Android Webview | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
Support basique | 4.4 | ? | 27.0 (27.0) | 1.0.1 | 10 | 22 | Pas de support | ? |
Unprefixed | Pas de support | 48.0 | 48.0 |