La méthode advance()
de l'interface IDBCursor
définit le nombre d'itérations du curseur avec lequel celui-ci doit se déplacer vers l'avant.
Syntaxe
cursor.advance(count);
Paramètres
count
- Le nombre d'itération du curseur.
Valeur de retour
Aucune.
Exceptions
Cette méthode peut déclencher des exceptions DOMException
:
Exception | Description |
---|---|
TransactionInactiveError |
Cette transaction IDBCursor est inactive. |
TypeError |
La valeur passée au paramètre count vaut zéro ou est négative. |
InvalidStateError |
Le curseur est en itération ou il à itéré au-delà de la plage. |
Exemple
Dans ce petit morceau de code on fait une transaction, récupère un magasin d'objet, puis utilise un curseur pour itérer sur les enregistrements du magasin. Ici, on utilise cursor.advance(2)
pour avancer de 2 cases à chaque fois, ce qui signifie que seule la moitié des résultats sera affichée. advance()
fonctionne de façon similaire à IDBCursor.continue
mais permet de sauter plusieurs enregistrements à la fois et pas uniquement d'accéder à l'enregistrement suivant.
On notera également que, dans chaque itération de la boucle, on peut récupérer les données de l'enregistrement en cours grâce à l'objet curseur via curseur.value.foo
. Pour un exemple fonctionnel complet, voir notre exemple IDBCursor (l'exemple en live).
function advanceResult() { list.innerHTML = ''; var transaction = db.transaction(['granListAlbum'], "readonly"); var objectStore = transaction.objectStore('granListAlbum'); objectStore.openCursor().onsuccess = function(event) { var curseur = event.target.result; if(cursor) { var listItem = document.createElement('li'); listItem.innerHTML = '' + curseur.value.titreAlbum + ', ' + curseur.value.annee; list.appendChild(listItem); curseur.advance(2); } else { console.log('moitié des resultat afficher'); } }; };
Spécifications
Spécification | État | Commentaires |
---|---|---|
Indexed Database API La définition de 'advance()' dans cette spécification. |
Recommendation |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support simple | 23webkit 24 |
10 moz 16.0 (16.0) |
10, partial | 15 | 7.1 |
Disponible dans les web workers | (Oui) | 37.0 (37.0) | ? | (Oui) | ? |
Fonctionnalité | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | 4.4 | 22.0 (22.0) | 1.0.1 | 10 | 22 | 8 |
Disponible dans les web workers | (Oui) | 37.0 (37.0) | (Oui) | ? | (Oui) | ? |
Voir aussi
- Manipuler IndexedDB
- Démarrer des transactions :
IDBDatabase
- Manipuler des transactions :
IDBTransaction
- Définir un intervalle de clés :
IDBKeyRange
- Récupérer des données et les modifier :
IDBObjectStore
- Manipuler des curseurs :
IDBCursor
- Exemple de référence pour IndexedDB : To-do Notifications