IDBCursor.continue()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.

La méthode continue() de l'interface IDBCursor fait avancer le curseur jusqu'à la prochaine position qui corrrespond à une clé donnée si celle-ci est passée en paramètre, si aucune clé n'est indiquée, le curseur avancera à la position qui suit immédiatement la position actuelle (dans la direction de progression du curseur).

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

Syntaxe

js
curseur.continue(cléOptionnelle);

Paramètres

cléOptionnelle

La clé sur laquelle se positionne le curseur.

Exceptions

Cette méthode peut déclencher des exceptions DOMException de type :

Exception Description
TransactionInactiveError La transaction de l'IDBCursor est inactive.
DataError

Le paramètre cléOptionnelle peut:

  • Être invalide.
  • Être inférieur ou égal à la position de ce curseur et la direction du curseur next ou nextunique.
  • Être supérieur ou égal à la position de ce curseur et la direction de ce curseur prev ou prevunique.
InvalidStateError Le curseur est en itération ou il a itéré au-delà de la plage.

Exemple

Dans ce petit morceau de code, on fait une transaction, on récupère un magasin d'objet, puis on utilise un curseur afin d'itérer sur les enregistrements contenus dans le magasin. Il n'est pas nécessaire de sélectionner les données selon une clé, on peut simplement toutes les récupérer. On notera qu'à chaque itération de la boucle, on récupère les données correspondantes à l'enregistrement grâce au curseur sous la forme curseur.value.toto. Pour étudier un exemple de travail complet, voir notre exemple IDBCursor (voir l'exemple live).

js
function afficheDonnee() {
  var transaction = db.transaction(["granListAlbum"], "readonly");
  var objectStore = transaction.objectStore("granListAlbum");

  objectStore.openCursor().onsuccess = function (event) {
    var curseur = event.target.result;
    if (curseur) {
      var listItem = document.createElement("li");
      listItem.innerHTML =
        curseur.value.titreAlbum + ", " + curseur.value.annee;
      list.appendChild(listItem);

      curseur.continue();
    } else {
      console.log("Entrées toutes affichés.");
    }
  };
}

Spécifications

Specification
Indexed Database API 3.0
# ref-for-dom-idbcursor-continue①

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi