From c05efa8d7ae464235cf83d7c0956e42dc6974103 Mon Sep 17 00:00:00 2001 From: julieng Date: Sat, 2 Oct 2021 17:20:14 +0200 Subject: move *.html to *.md --- files/fr/web/api/idbindex/count/index.md | 142 +++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 files/fr/web/api/idbindex/count/index.md (limited to 'files/fr/web/api/idbindex/count/index.md') diff --git a/files/fr/web/api/idbindex/count/index.md b/files/fr/web/api/idbindex/count/index.md new file mode 100644 index 0000000000..82d71e4b0c --- /dev/null +++ b/files/fr/web/api/idbindex/count/index.md @@ -0,0 +1,142 @@ +--- +title: IDBIndex.count() +slug: Web/API/IDBIndex/count +tags: + - API + - IDBIndex + - IndexedDB + - Méthode + - Reference +translation_of: Web/API/IDBIndex/count +--- +
{{APIRef("IndexedDB")}}
+ +

La méthode count(), rattachée à l'interface {{domxref("IDBIndex")}}, renvoie un objet {{domxref("IDBRequest")}} et, dans un thread séparé, renvoie le nombre d'enregistrements contenu dans un intervalle de clé.

+ +

{{AvailableInWorkers}}

+ +

Syntaxe

+ +
var request = monIndex.count();
+var request = monIndex.count(cle);
+ +

Paramètres

+ +
+
cle {{optional_inline}}
+
La clé ou l'intervalle de clé qui définit les enregistrements qu'on souhaite compter.
+
+ +

Valeur de retour

+ +

Un objet {{domxref("IDBRequest")}} sur lequel seront déclenchés les différents évènements relatifs à l'opération.

+ +

Exceptions

+ +

Cette méthode peut déclencher différents types d'exceptions :

+ + + + + + + + + + + + + + + + + + + + + + +
ExceptionDescription
TransactionInactiveErrorLa transaction associée à cet index est inactive.
DataError +

La clé ou l'intervalle de clé fourni possède une clé invalide.

+
InvalidStateErrorL'index a été supprimé ou retiré.
+ +

Exemples

+ +

Dans l'exemple qui suit, on ouvre une transaction et un magasin d'objets puis on récupère l'index lName depuis une base de données de contacts. Ensuite, on ouvre un curseur simple sur cet index grâce à la méthode {{domxref("IDBIndex.openCursor")}} (ce qui fonctionne comme si on ouvrait un curseur sur le magasin d'objets avec {{domxref("IDBObjectStore.openCursor")}} sauf que les enregistrements sont ici triés selon l'index plutôt que selon la clé primaire).

+ +

myIndex.count() est alors utilisé afin de compter le nombre d'enregistrements dans l'index et le résultat de la requête est affiché dans la console au travers du gestionnaire d'évènements pour la réussite (onsuccess).

+ +

Efin, on parcourt chaque enregistrement pour l'insérer dans un tableau HTML. Pour consulter un exemple fonctionnel complet, vous pouvez vous référer à notre dépôt IDBIndex-example (cf. la démonstration live).

+ +
function displayDataByIndex() {
+  tableEntry.innerHTML = '';
+  var transaction = db.transaction(['contactsList'], 'readonly');
+  var objectStore = transaction.objectStore('contactsList');
+
+  var myIndex = objectStore.index('lName');
+  var countRequest = myIndex.count();
+  countRequest.onsuccess = function() {
+    console.log(countRequest.result);
+  }
+
+  myIndex.openCursor().onsuccess = function(event) {
+    var cursor = event.target.result;
+    if(cursor) {
+      var tableRow = document.createElement('tr');
+      tableRow.innerHTML =   '<td>' + cursor.value.id + '</td>'
+                           + '<td>' + cursor.value.lName + '</td>'
+                           + '<td>' + cursor.value.fName + '</td>'
+                           + '<td>' + cursor.value.jTitle + '</td>'
+                           + '<td>' + cursor.value.company + '</td>'
+                           + '<td>' + cursor.value.eMail + '</td>'
+                           + '<td>' + cursor.value.phone + '</td>'
+                           + '<td>' + cursor.value.age + '</td>';
+      tableEntry.appendChild(tableRow);
+
+      cursor.continue();
+    } else {
+      console.log('Éléments affichés.');
+    }
+  };
+};
+ +

Spécifications

+ +
+
+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('IndexedDB', '#widl-IDBIndex-count-IDBRequest-any-key', 'count()')}}{{Spec2('IndexedDB')}} 
{{SpecName("IndexedDB 2", "#dom-idbindex-count", "count()")}}{{Spec2("IndexedDB 2")}} 
+ +

Compatibilité des navigateurs

+ +

{{Compat("api.IDBIndex.count")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf