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/unique/index.md | 96 +++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 files/fr/web/api/idbindex/unique/index.md (limited to 'files/fr/web/api/idbindex/unique/index.md') diff --git a/files/fr/web/api/idbindex/unique/index.md b/files/fr/web/api/idbindex/unique/index.md new file mode 100644 index 0000000000..4e199912a4 --- /dev/null +++ b/files/fr/web/api/idbindex/unique/index.md @@ -0,0 +1,96 @@ +--- +title: IDBIndex.unique +slug: Web/API/IDBIndex/unique +tags: + - API + - IDBIndex + - IndexedDB + - Propriété + - Reference +translation_of: Web/API/IDBIndex/unique +--- +
{{APIRef("IndexedDB")}}
+ +

La propriété unique, rattachée à l'interface IDBIndex, est un booléen qui indique si l'index utilisé permet d'avoir des clés dupliquées.

+ +

Cette caractéristique est décidée lors de la création de l'index, avec la méthode {{domxref("IDBObjectStore.createIndex")}}. Cette méthode prend un paramètre optionnel, unique, qui, s'il vaut true, indique que l'index ne permettra pas d'avoir de clés dupliquées.

+ +

{{AvailableInWorkers}}

+ +

Syntaxe

+ +
var myIndex = objectStore.index('index');
+ +

Valeur

+ +

Un booléen qui vaut true si l'index permet d'avoir des valeurs dupliquées pour une même clé ou false s'il n'est pas possible d'avoir de clés dupliquées.

+ +

Exemples

+ +

Dans l'exemple suivant, on ouvre une transaction en lecture sur un magasin d'objets puis on récupère l'index lName. On ouvre alors un curseur sur l'index grâce à {{domxref("IDBIndex.openCursor")}} (cela fonctionne de façon analogue à l'ouverture d'un curseur sur le magasin d'objets avec {{domxref("IDBObjectStore.openCursor")}} sauf qu'ici, les enregistrements sont triés selon l'index et pas selon la clé primaire.

+ +

On affiche le caractère unique des clé dans la console (ici, on voit que la propriété vaut false).

+ +

Enfin, on parcourt chaque enregistrement et on insère les données dans le tableau HTML (pour voir un exemple complet, consulter notre dépôt IDBIndex-example (voir la démonstration live).

+ +
function displayDataByIndex() {
+  tableEntry.innerHTML = '';
+  var transaction = db.transaction(['contactsList'], 'readonly');
+  var objectStore = transaction.objectStore('contactsList');
+
+  var myIndex = objectStore.index('lName');
+  console.log(myIndex.unique);
+
+  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('Les éléments sont affichés.');
+    }
+  };
+};
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('IndexedDB', '#widl-IDBIndex-unique', 'unique')}}{{Spec2('IndexedDB')}} 
+ +

Compatibilité des navigateurs

+ +

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

+ +

Voir aussi

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