1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
---
title: IDBIndex.locale
slug: Web/API/IDBIndex/locale
translation_of: Web/API/IDBIndex/locale
---
<div>{{APIRef("IndexedDB")}}{{SeeCompatTable}}</div>
<p>La propriété <strong><code>locale</code></strong> de l'interface {{domxref("IDBIndex")}} renvoie la localisation de l'index (par exemple fr, ou <code>en-US</code>) <code>si la localisation à été spécifie lors de la mise en place de l'index</code> (voir les paramètres {{domxref("IDBObjectStore.createIndex")}}).</p>
<p>{{note("Cette propriété renvoie la localisation utilisé par l'index. En d'autres termes, elle ne renverras jamais 'auto'.")}}</p>
<h2 id="Syntaxe">Syntaxe</h2>
<pre class="brush: js">var indexLocalisation = myIndex.locale;</pre>
<h2 id="Valeur">Valeur</h2>
<p>Une {{domxref("DOMString","chaîne de caractère")}} représentant la localisation courante de l'index.</p>
<h2 id="Exemple">Exemple</h2>
<p>Dans l'exemple suivant on ouvre une transaction puis un magasin d'objet et enfin l'index <code>lName</code>.</p>
<p>La valeur de la propriété <code>Locale</code> est affichée sur la console.</p>
<p>Finalement, On itère sur tous les enregistrements pour en insérer les données dans un tableau HTML. En utilisant la méthode {{domxref("IDBIndex.openCursor")}} qui travaille de la même façon que la méthode {{domxref("IDBObjectStore.openCursor")}} de l'{{domxref("IDBObjectStore","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.</p>
<pre class="brush:js">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.');
}
};
};</pre>
<p class="note">Pour un exemple de travail complet, voir notre <a href="https://github.com/mdn/to-do-notifications/">To-do Notifications</a> app (<a href="http://mdn.github.io/to-do-notifications/">view example live</a>).</p>
<h2 id="Spécification">Spécification</h2>
<p>Ne fait actuellement partie d'aucune spécification.</p>
<h2 id="Compatibilité_avec_les_navigateurs">Compatibilité avec les navigateurs</h2>
<div>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Fonctionnalité</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari (WebKit)</th>
</tr>
<tr>
<td>Support basique</td>
<td>{{CompatNo}}</td>
<td>{{CompatGeckoDesktop("43.0")}}<sup>[1]</sup></td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Fonctionnalité</th>
<th>Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>Firefox OS</th>
<th>IE Phone</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Support basique</td>
<td>{{CompatNo}}</td>
<td>{{CompatGeckoMobile("43.0")}}<sup>[1]</sup></td>
<td>2.5<sup>[1]</sup></td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
</tr>
</tbody>
</table>
</div>
<p>[1] Pour accédé à cette fonctionnalité il faut activé <code>dom.indexedDB.experimental</code> dans <code>about:config</code>.</p>
<h2 id="Voir_aussi">Voir aussi</h2>
<ul>
<li>{{domxref("IndexedDB_API.Using_IndexedDB","Utiliser IndexedDB")}}</li>
<li>{{domxref("IDBDatabase","Débuter une connexion")}}</li>
<li>{{domxref("IDBTransaction","Utilisé les transactions")}}</li>
<li>{{domxref("IDBKeyRange","Définir l'intervalle des clés")}}</li>
<li>{{domxref("IDBObjectStore","Accès aux magasins d'objets")}}</li>
<li>{{domxref("IDBCursor","Utiliser les curseur")}}</li>
<li>Exemple de référence: <a class="external" href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a> (<a class="external" href="http://mdn.github.io/to-do-notifications/">view example live</a>.)</li>
</ul>
|