IDBKeyRange

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.

L'interface IDBKeyRange de l'API IndexedDB fournie des intervalles de clés. Les enregistrements peuvent être retourvés dans les magasins d'objets ou depuis leurs index en utilisant des clés ou des intervalles de clés. Cette interface permet de fabriqué ces inervalles. Par exemple on peut itéré sur tout les enregistrements dont la valeur de clé est comprise entre "A" et "Z".

Le tableau suivant montre les intervalles disponibles:

intervalle Code Commentaire
clé(s) ≥ x IDBKeyRange.lowerBound(x) Intervalle borné et fermé en bas
clé(s) > x IDBKeyRange.lowerBound(x, true) Intervalle borné et ouvert en bas
clé(s) ≤ y IDBKeyRange.upperBound(y) Intervalle borné et fermé en haut
clé(s) < y IDBKeyRange.upperBound(y, true) Intervalle borné et ouvert en haut
x ≤ clé(s) ≤ y IDBKeyRange.bound(x, y) Intervalle complètement borné et fermé
x < clé(s) < y IDBKeyRange.bound(x, y, true, true) Intervalle complètement borné et ouvert
x < clé(s) ≤ y IDBKeyRange.bound(x, y, true, false) Intervalle complètement borné, ouvert en bas
x ≤ clé(s) < y IDBKeyRange.bound(x, y, false, true) Intervalle complètement borné, ouvert en haut
clé(s) = z IDBKeyRange.only(z) Une seule clé

La clé est dans l'intervalle si:

  • La limite inférieure de l'intervalle est:
    • undefined (non définie).
    • Inférieur à la valeur de la clé.
    • Égal à la valeur de la clé si lowerOpen vaut false.
  • La limite supérieure de l'intervalle est:
    • undefined (non définie).
    • Supérieur à la valeur de la clé.
    • Égal à la valeur de la clé si upperOpen vaut false.

Note : This feature is available in Web Workers.

Méthodes statiques

IDBKeyRange.bound()
Renvoie un intervalle de clé complètement borné.
IDBKeyRange.only()
Renvoie un intervalle de clé contenant une seule clé.
IDBKeyRange.lowerBound()
Renvoie un intervalle de clé borné en bas.
IDBKeyRange.upperBound()
Renvoie un intervalle de clé borné en haut.

Méthode

Note : Cette méthode est celle de l'intervalle de clé retourné par une des méthodes statique de l'interface.

IDBKeyRange.includes()
Renvoie un booléen indiquant si la clé spécifié est dans l'intervalle de clé.

Propriétés

Note : Ces propriétés sont celles de l'intervalle de clé retourné par une des méthodes statiques de l'interface.

IDBKeyRange.lower Lecture seule
Limite inférieur de l'intervalle de clé.
IDBKeyRange.upper Lecture seule
Limite supérieur de l'intervalle de clé.
IDBKeyRange.lowerOpen Lecture seule
Renvoie un booléen qui indique si la limite inférieure est en dehors de l'intervalle.
IDBKeyRange.upperOpen Lecture seule
Renvoie un booléen qui indique si la limite  supérieure est en dehors de l'intervalle.

Exemple

Dans l'exemple suivant on récupère l'intervalle de clé entre "A" et "F" . Puis on ouvre une transaction sur la connexion pour avoir l’accès au magasin d'objets 'fThings'. On met en place un curseur sur l'intervalle pour afficher dans une liste les valeurs des propriétés fThing et fRating des objets trouvés.

function displayData() {
  var keyRangeValue = IDBKeyRange.bound("A", "F");

  var transaction = db.transaction(['fThings'], 'readonly');
  var objectStore = transaction.objectStore('fThings');

  objectStore.openCursor(keyRangeValue).onsuccess = function(event) {
    var cursor = event.target.result;
      if(cursor) {
        var listItem = document.createElement('li');
        listItem.innerHTML = '<strong>' + cursor.value.fThing + '</strong>, ' + cursor.value.fRating;
        list.appendChild(listItem);  
          
        cursor.continue();
      } else {
        console.log('Entries all displayed.');
      }
    };
  };

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

Spécifications

Spécification Statut Commentaire
Indexed Database API
La définition de 'IDBKeyRange' dans cette spécification.
Recommendation  

Compatibilité avec les navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support basique 23webkit
24
10 moz
16.0 (16.0)
10, en partie 15 7.1
Disponible dans workers (Oui) 37.0 (37.0) ? (Oui) ?
includes() ? 47.0 (47.0) ? ? ?
Fonctionnalité Android Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile
Support basique 4.4 22.0 (22.0) 1.0.1 10 22 8
Disponible dans workers (Oui) 37.0 (37.0) (Oui) ? (Oui) ?
includes() ? ? ? ? ? ?

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : gadgino, Goofy, jpmedley
 Dernière mise à jour par : gadgino,