Chapitre 16 – Le localStorage et sessionStorage

Le navigateur met à disposition deux systèmes de stockage local appelés Web Storage API : localStorage et sessionStorage. Ces mécanismes permettent de stocker des données côté client de façon simple et rapide.

Zone de démonstration interactive

Les résultats des opérations de stockage apparaîtront ici...

1. Stockage côté client

Ces deux objets permettent de stocker des paires clé → valeur sous forme de chaînes de caractères. Ils sont accessibles via l'objet global window.

// Accès aux objets de stockage
console.log(window.localStorage); // ou simplement localStorage
console.log(window.sessionStorage); // ou simplement sessionStorage

2. Lire, écrire, supprimer des données

Écriture

// localStorage
localStorage.setItem("nom", "Alice");

// sessionStorage
sessionStorage.setItem("age", "30");

Lecture

const nom = localStorage.getItem("nom");
console.log(nom); // "Alice"

const age = sessionStorage.getItem("age");
console.log(age); // "30"

Suppression

// Supprimer un élément spécifique
localStorage.removeItem("nom");

// Supprimer tous les éléments
sessionStorage.clear();

3. Conversion d'objets avec JSON

Comme Web Storage ne stocke que des chaînes de caractères, il est nécessaire d'utiliser JSON.stringify() pour stocker des objets, et JSON.parse() pour les relire.

const utilisateur = {
  prénom: "Alice",
  connecté: true
};

// Enregistrement
localStorage.setItem("utilisateur", JSON.stringify(utilisateur));

// Lecture
const data = localStorage.getItem("utilisateur");
const utilisateurObj = JSON.parse(data);

console.log(utilisateurObj.prénom); // "Alice"
console.log(utilisateurObj.connecté); // true

4. Cas d'utilisation

Voici quelques exemples concrets d'utilisation de localStorage et sessionStorage :

5. Limitations et bonnes pratiques

// Exemple avec gestion d'erreur
try {
  localStorage.setItem("config", JSON.stringify({ theme: "sombre" }));
} catch (e) {
  console.error("Erreur de stockage:", e);
  // Gérer l'erreur (stockage plein ou indisponible)
}

Résumé du chapitre

  • localStorage et sessionStorage permettent de stocker des données côté client sous forme de chaînes de caractères.
  • setItem() permet d'écrire, getItem() de lire, removeItem() de supprimer, et clear() de tout effacer.
  • Il est possible de stocker des objets via JSON.stringify() et de les relire avec JSON.parse().
  • localStorage conserve les données même après la fermeture du navigateur ; sessionStorage les perd à la fermeture de l'onglet.
  • Il ne faut jamais y stocker de données sensibles car ce stockage est accessible depuis JavaScript.
  • Toujours prévoir une gestion d'erreur car le stockage peut être désactivé ou plein.

Utiliser intelligemment le stockage local permet d'offrir une meilleure expérience utilisateur, plus fluide et personnalisée.