From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../web/api/idbobjectstore/createindex/index.html | 231 +++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 files/fr/web/api/idbobjectstore/createindex/index.html (limited to 'files/fr/web/api/idbobjectstore/createindex') diff --git a/files/fr/web/api/idbobjectstore/createindex/index.html b/files/fr/web/api/idbobjectstore/createindex/index.html new file mode 100644 index 0000000000..aef72d855a --- /dev/null +++ b/files/fr/web/api/idbobjectstore/createindex/index.html @@ -0,0 +1,231 @@ +--- +title: IDBObjectStore.createIndex() +slug: Web/API/IDBObjectStore/createIndex +translation_of: Web/API/IDBObjectStore/createIndex +--- +

{{ APIRef("IndexedDB") }}

+ +

La méthode createIndex() de l'interface {{domxref("IDBObjectStore")}} met en place sur le magasin d'objet {{domxref("IDBObjectStore","relié")}} un nouvel index et en renvoie l'{{domxref("IDBIndex","accès")}}.

+ +
+

Note: cette méthode ne peut être appelé que si la transaction de l'accès au magasin d'objet est en mode VersionChange.

+
+ +

{{AvailableInWorkers}}

+ +

Syntaxe

+ +
objectStore.createIndex(nomIndex, nomCle, parametresIndexOptionnel);
+ +

Paramètres

+ +
+
nomIndex
+
Le nom de l'index que l'on veut ajouter. Il est possible d'ajouter un index avec un nom vide.
+
nomCle
+
Le nom de clé qu'utilise l'index. Il est possible d'ajouter un index sans nom de clé.
+
parametresIndexOptionnel {{optional_inline}}
+
+

Un objet optionnel pouvant inclure une ou plusieurs des propriétés suivantes:

+ + + + + + + + + + + + + + + + + + + + + + +
PropriétéDescription
uniqueSi true, l'index empêcheras la duplication d'une clé.
multiEntrySi true, l'index ajoutera une entrée pour chaque élément de tableau quand le nom de clé de clé est résolue. Si false, il ajoutera un seule entrée contenant le tableau.
locale +

Actuellement uniquement dans Firefox 43+ , cela vous permet de spécifier des paramètres de localisation pour l'index. Toutes les opérations de tri effectuées sur les données via des intervalle de clé obéirons aux règles locales de tri (voir trie dans localisation courante, en). Vous pouvez spécifier sa valeur de trois façons différentes:

+ +
    +
  • string: une chaîne de caractère contenant le code de la localisation , par exemple 'fr' ou 'en-US'.
  • +
  • auto: La localisation par défaut est utilisé (peut être régler par l'utilisateur).
  • +
  • null or undefined: Les règles de tri par défaut de javaScript seront utilisées.
  • +
+
+
+
+ +

Renvoie

+ +

L'{{domxref("IDBIndex","accès")}} au nouvel index.

+ +

Exceptions

+ +
+
InvalidStateError
+
Cette {{domxref("DOMException","exeption")}} si la {{domxref("IDBTransaction","transaction")}} dont dépend cet {{domxref("IDBObjectStore","accès")}} au magasin d'objet n'est pas en {{domxref("IDBTransaction.mode","mode")}} versionchange.
+
TransactionInactiveError
+
Cette {{domxref("DOMException","exeption")}} si la {{domxref("IDBTransaction","transaction")}} de l'{{domxref("IDBObjectStore","accès")}} au magasin d’objet est inactive. +

Dans les versions de Firefox antérieur à 41, une InvalidStateError est levé dans ce cas aussi, ce qui est trompeur. Cela a été corrigé (voir bug 1176165 ).

+
+
ConstraintError
+
Cette {{domxref("DOMException","exeption")}} si un index avec le même nom (case sensible) existe déjà sur le magasin d'objet.
+
+ +

Exemple

+ +

Dans l'exemple suivant on peut voir le gestionnaire d'événement {{domxref("IDBOpenDBRequest.onupgradeneeded","onupgradeneeded")}} être utilisé pour mètre à jour la structure de la base de donnée quand un numéro de version supérieur est chargé.

+ +

Des méthode createIndex() sont utilisées pour mètre en place différents index sur le magasin d'objet toDoList.

+ +
var db;
+
+// Requête d'ouverture de la base de données "toDoList"
+var DBOpenRequest = window.indexedDB.open("toDoList", 4);
+
+// Gère  l'échec de l'ouverture de la base
+DBOpenRequest.onerror = function(event) {
+  note.innerHTML += '<li>La base de donnée n\'as pas peut être ouverte.</li>';
+};
+
+// Gère le succès de l'ouverture de la base
+DBOpenRequest.onsuccess = function(event) {
+  note.innerHTML += '<li>La base de données est ouverte.</li>';
+
+  //La connexion est affcté à la variable db.
+  db = request.result;
+
+  // Exécute une fonction d'affichage displayData()
+  displayData();
+};
+
+// Ce gestionnaire d'événement nécessite  un nouveau numéro de version de la basse de données.
+// Si la base n'existe pas un nouveau numéro de version est généré par la méthode d'ouverture de connexion window.indexDB.open .
+
+DBOpenRequest.onupgradeneeded = function(event) {
+  var db = event.target.result;
+
+  db.onerror = function(event) {
+    note.innerHTML += '<li>Erreur de chargement de la base de données.</li>';
+  };
+
+  // L'Accès au magasin d'objet "toDoList" de la base de donnée
+  var objectStore = db.createObjectStore("toDoList", { keyPath: "taskTitle" });
+
+  // Met en place les index du magasin d'objet
+  objectStore.createIndex("heures", "hours", { unique: false });
+  objectStore.createIndex("minutes", "minutes", { unique: false });
+  objectStore.createIndex("jour", "day", { unique: false });
+  objectStore.createIndex("mois", "month", { unique: false });
+  objectStore.createIndex("annee", "year", { unique: false });
+  objectStore.createIndex("notifiee", "notified", { unique: false });
+};
+
+ +

Pour un exemple de travail complet, voir notre To-do Notifications app (view example live).

+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('IndexedDB', '#widl-IDBObjectStore-createIndex-IDBIndex-DOMString-name-DOMString-sequence-DOMString--keyPath-IDBIndexParameters-optionalParameters', 'createIndex()')}}{{Spec2('IndexedDB')}} 
+ +

Compatibilité avec les navigateurs

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support basique23{{property_prefix("webkit")}}
+ 24
10 {{property_prefix("moz")}}
+ {{CompatGeckoDesktop("16.0")}}
10, en partie157.1
Disponible dans workers{{CompatVersionUnknown}}{{CompatGeckoMobile("37.0")}}{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidFirefox Mobile (Gecko)Firefox OSIE PhoneOpera MobileSafari Mobile
Support basique4.4{{CompatGeckoMobile("22.0")}}1.0.110228
Disponible dans workers{{CompatVersionUnknown}}{{CompatGeckoMobile("37.0")}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}
+
+ +

Voir aussi

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