Attention : Le contenu de ces pages n'a pas été mis à jour depuis longtemps. Il est probablement obsolète pour Firefox 4.0/Gecko 4.0 et supérieur. Pour du contenu plus récent, allez consulter developer.mozilla.org.

Client storage

Gecko 1.8.1 fournit un nouveau moyen pour les pages web de stocker des données côté client, en Javascript. C'est une alternative plus puissante et plus souple que les traditionnels cookies.

Voir les spécifications sur le site du Whatwg.

Concrètement, le développeur web dispose de deux objets Javascript : sessionStorage et globalStorage.

L’objet sessionStorage

C'est un objet qui permet de stocker des données relatives à une session. Pour faire court, il y a un objet sessionStorage par fenêtre (ou par onglet). Par exemple, si vous ouvrez deux fenêtres sur un même site, chacune des deux pages auront leur propre objet sessionStorage.

sessionStorage est un objet de type storage (voir plus loin).

Exemple :

  sessionStorage.foo = "bar";
  if (sessionStorage.foo == 'hello') {
    ...
  }

L’objet globalStorage

Il permet de stocker des données relatif à un domaine. Il est commun à toutes les sessions (donc à toutes les pages web de toutes les fenêtres).

globalStorage est un tableau contenant des objets de type storage. Chaque élément de ce tableau ayant pour clé le nom d'un domaine. Il y a des restrictions d'accès suivant le nom de domaine de la page web et les noms de ces clés. Exemples (pris des spécs) :

  • globalStorage[''] est accessible à toutes les pages web
  • globalStorage['com'] est accessible à toutes les pages web qui ont un nom de domaine se terminant par com.
  • globalStorage['example.com'] est accessible à toutes les pages web qui ont un nom de domaine se terminant par example.com (donc example.com, www.example.com, www2.example.com).
  • globalStorage['www.example.com'] est accessible à toutes les pages web qui ont un nom de domaine se terminant par www.example.com ou qui est example.com (donc example.com, www.example.com, mais pas www2.example.com).

Exemple :

   globalStorage['xulfr.org'].foo = "bar";

API

ToDo: à compléter.

Le type storage

sessionStorage et les objets dans globalStorage ont les propriétés et méthodes suivantes :

 interface Storage {
   readonly attribute unsigned long length;
   DOMString key(in unsigned long index);
   StorageItem getItem(in DOMString key);
   void setItem(in DOMString key, in DOMString data);
   void removeItem(in DOMString key);
 };

Exemple :

 alert("Il y a " + sessionStorage.length + " informations stockées.");
 // Les deux instructions suivantes sont équivalentes.
 sessionStorage.setItem("foo", "une valeur");
 sessionStorage.foo = "une valeur";
 var truc;
 // Les deux instructions suivantes sont équivalentes.
 truc = sessionStorage.getItem('foo');
 truc = sessionStorage.foo;

Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.