Les API multimédia et graphiques en HTML5, exemples avec <audio/>, <video/> et <canvas/>

Une API de stockage de données côté client  : Web Storage

DéfinitionWeb Storage

Web Storage est une technique HTML5 dotée d'une API permettant de stocker des données directement dans le navigateur. C'est une alternative aux cookies :

  • moins limitée en taille (au moins 5MB par domaine) ;

  • sans communication avec le serveur distant.

Les données sont stockées sous forme de clés/valeurs.

RemarqueStockage par navigateur et par domaine

Le stockage Web Storage est directement lié au navigateur, les données ne seront donc pas partagées d'un navigateur à un autre.

En outre, les données sont rattachées par domaine (protocole et nom) et donc invisibles en visitant un autre domaine.

Avantages et inconvénients

Avantages :

  • Compatible sur les navigateurs récents (iOS et Android inclus) depuis des années.

  • API simple d'utilisation.

  • Appels successifs facilités (API synchrone).

  • Permet la synchronisation entre plusieurs onglets/fenêtres ouverts.

Inconvénients :

  • Faibles performances lors du traitement de données volumineuses (API synchrone).

  • Faibles performances de recherche (par itération manuelle, pas d'indexation).

  • Faibles performances lors du traitement de données complexes (nécessité de (dé)linéariser les données, le seul type accepté étant la string).

  • Pas de contrôle de sécurité/d'intégrité, données non structurées.

localStorage vs sessionStorage

L'API Web Storage propose deux interfaces aux méthodes identiques, localStorage et sessionStorage.

Ci-dessous un tableau comparatif entre les deux :

localStorage vs sessionStorage

localStorage

sessionStorage

Mémorisation des données

sans limite de durée de vie

durée d'une session de navigation

Portée

tout onglet ou fenêtre

fenêtre ou onglet actif

Remarque

Les fenêtres popup ouvertes depuis la fenêtre active peuvent accéder au sessionStorage, et ce de même pour les iframes de la fenêtre active.

SyntaxeMéthodes de l'API

Accesseurs en lecture/écriture (getter/setter)

  • setItem(clé,valeur) : stocke une paire clé/valeur

  • getItem(clé) : renvoie la valeur associée à une clé

Autres méthodes :

  • removeItem(clé) : supprime la paire clé/valeur

  • key(index) : renvoie la clé stockée à l'index spécifié

  • clear() : efface toutes les paires

  • length() : renvoie le nombre de paires existantes

ExempleStockage et récupération

1
sessionStorage.setItem("couleur", "vert");
2
var couleur = sessionStorage.getItem("couleur");

RemarqueMultiples syntaxes getter/setter

Les syntaxes suivantes sont équivalentes :

1
// Stockage
2
localStorage.couleur    = "vert";
3
localStorage["couleur"] = "vert";
4
localStorage.setItem("couleur", "vert");
5
6
// Accès
7
var couleur = localStorage.couleur;
8
var couleur = localStorage["couleur"];
9
var couleur = localStorage.getItem("couleur");

Les deux dernières syntaxes sont nécessaires si la clé utilisée contient par exemple des espaces.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Rihab Hachem, Cindy Pinvin, Baptiste Perraud, 2014-2016 (Contributions : Stéphane Crozat, les étudiants de l'UTC) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)