IDBCursor.advance()

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.

Note : Cette fonctionnalité est disponible via les Web Workers.

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

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight, gadgino
 Dernière mise à jour par : SphinxKnight,