Cet article nécessite une relecture technique. Voici comment vous pouvez aider.
Cet article nécessite une relecture rédactionnelle. Voici comment vous pouvez aider.
Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.
La propriété locale
de l'interface IDBIndex
renvoie la localisation de l'index (par exemple fr, ou en-US
) si la localisation à été spécifie lors de la mise en place de l'index
(voir les paramètres IDBObjectStore.createIndex
).
Syntaxe
var indexLocalisation = myIndex.locale;
Valeur
Une chaîne de caractère
représentant la localisation courante de l'index.
Exemple
Dans l'exemple suivant on ouvre une transaction puis un magasin d'objet et enfin l'index lName
.
La valeur de la propriété Locale
est affichée sur la console.
Finalement, On itère sur tous les enregistrements pour en insérer les données dans un tableau HTML. En utilisant la méthode IDBIndex.openCursor
qui travaille de la même façon que la méthode IDBObjectStore.openCursor
de l'accès
au magasin d'objet sauf que les enregistrements sont renvoyés dans l'ordre de l'index et non celui du magasin d'objet.
function displayDataByIndex() { tableEntry.innerHTML = ''; //ouvre un transaction var transaction = db.transaction(['contactsList'], 'readonly'); //accés au magasin d'objet var objectStore = transaction.objectStore('contactsList'); //on récupère l'index var myIndex = objectStore.index('lName'); //on affiche la propriété locale sur la console console.log(myIndex.locale); //un curseur qui itère sur l'index 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('Tous les enregistrements ont été affichés.'); } }; };
Pour un exemple de travail complet, voir notre To-do Notifications app (view example live).
Spécification
Ne fait actuellement partie d'aucune spécification.
Compatibilité avec les navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support basique | Pas de support | 43.0 (43.0)[1] | Pas de support | Pas de support | Pas de support |
Fonctionnalité | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support basique | Pas de support | 43.0 (43.0)[1] | 2.5[1] | Pas de support | Pas de support | Pas de support |
[1] Pour accédé à cette fonctionnalité il faut activé dom.indexedDB.experimental
dans about:config
.