Skip to content

Introduction au Local Storage

Le Local Storage est un mécanisme de stockage de données côté client qui permet de conserver des informations de manière persistante dans le navigateur web. Il offre aux développeurs la possibilité de stocker des paires clé-valeur sous forme de chaînes de caractères.

Lorsqu'un site web utilise le Local Storage, les données sont stockées localement sur l'ordinateur de l'utilisateur, dans un espace réservé au domaine du site web. Cela signifie que les données du Local Storage sont spécifiques à un domaine particulier et ne peuvent pas être accédées par d'autres domaines.

Le Local Storage est souvent utilisé pour stocker des informations telles que les préférences utilisateur, les paramètres de configuration, les données de session, et d'autres données qui doivent être conservées même lorsque l'utilisateur ferme le navigateur ou redémarre l'ordinateur.

Avantages du stockage côté client

Le Local Storage présente plusieurs avantages :

  1. Stockage persistant : Les données stockées dans le Local Storage restent disponibles même après la fermeture du navigateur ou le redémarrage de l'ordinateur. Elles sont conservées jusqu'à ce qu'elles soient explicitement supprimées ou que l'utilisateur vide le cache du navigateur.

  2. Capacité de stockage : Le Local Storage offre une capacité de stockage d'environ 5 Mo par domaine. Cela permet de stocker une quantité significative de données côté client.

  3. Facilité d'utilisation : Le Local Storage est facile à utiliser grâce à l'API JavaScript fournie par les navigateurs. On peut ajouter, modifier, récupérer et supprimer des données en utilisant des méthodes simples.

  4. Compatibilité avec les navigateurs : Le Local Storage est pris en charge par la plupart des navigateurs modernes, ce qui le rend compatible avec un large éventail de plateformes.

Limitations du stockage côté client

Malgré ses avantages, le Local Storage présente également certaines limitations :

  1. Espace de stockage limité : Bien que la capacité de stockage du Local Storage soit raisonnable, elle reste limitée à environ 5 Mo par domaine. Il est donc important de gérer judicieusement l'espace de stockage et d'éviter de stocker des quantités excessives de données.

  2. Stockage sous forme de chaînes de caractères : Le Local Storage ne peut stocker que des chaînes de caractères. Si vous souhaitez stocker des objets complexes tels que des tableaux ou des objets JavaScript, vous devrez les convertir en chaînes de caractères à l'aide de la sérialisation JSON.

  3. Données accessibles en JavaScript : Les données du Local Storage

Utilisation du Local Storage

L'utilisation du Local Storage en JavaScript permet d'ajouter, de récupérer, de modifier et de supprimer des données stockées localement dans le navigateur. Voici les différentes opérations que l'on peut effectuer avec le Local Storage :

  • Ajouter des données dans le Local Storage : Pour ajouter des données dans le Local Storage, on utilise la méthode localStorage.setItem(). Cette méthode prend deux paramètres : la clé et la valeur de la donnée à stocker. Par exemple :
javascript
localStorage.setItem('nom', 'John');

Cette instruction ajoute une donnée avec la clé "nom" et la valeur "John" dans le Local Storage.

  • Récupérer et afficher les données du Local Storage : Pour récupérer une donnée du Local Storage, on utilise la méthode localStorage.getItem(). On lui passe en paramètre la clé de la donnée que l'on souhaite récupérer. Par exemple :
javascript
var nom = localStorage.getItem('nom');
console.log(nom); // Affiche "John"

Cette instruction récupère la valeur associée à la clé "nom" et l'affiche dans la console.

  • Modifier des données dans le Local Storage : Pour modifier une donnée existante dans le Local Storage, on utilise la même méthode localStorage.setItem(). Si la clé spécifiée existe déjà, la valeur associée sera mise à jour. Par exemple :
javascript
localStorage.setItem('nom', 'Jane');

Cette instruction met à jour la valeur associée à la clé "nom" avec la nouvelle valeur "Jane".

  • Supprimer des données du Local Storage : Pour supprimer une donnée du Local Storage, on utilise la méthode localStorage.removeItem(). On lui passe en paramètre la clé de la donnée à supprimer. Par exemple :
javascript
localStorage.removeItem('nom');

Cette instruction supprime la donnée associée à la clé "nom" du Local Storage.

Il est également possible de vider complètement le Local Storage en utilisant la méthode localStorage.clear(). Cette méthode supprime toutes les données stockées dans le Local Storage.

Gestion des données dans le Local Storage

Lorsque vous utilisez le Local Storage en JavaScript, vous devez prendre en compte certains aspects liés à la gestion des données. Voici les points importants à considérer :

Format des données : clé-valeur

Le Local Storage stocke les données sous forme de paires clé-valeur. Chaque donnée est associée à une clé unique qui permet de l'identifier et de la récupérer ultérieurement. Il est important de choisir des clés descriptives et significatives pour faciliter la gestion des données.

Conversion des données en chaînes de caractères

Le Local Storage ne peut stocker que des chaînes de caractères. Par conséquent, si vous souhaitez stocker des objets JavaScript complexes tels que des tableaux ou des objets, vous devez les convertir en chaînes de caractères avant de les stocker.

La méthode couramment utilisée pour effectuer cette conversion est la sérialisation JSON. Vous pouvez utiliser les fonctions JSON.stringify() pour convertir un objet JavaScript en une chaîne de caractères JSON, et JSON.parse() pour convertir une chaîne de caractères JSON en un objet JavaScript.

Voici un exemple de sérialisation et de désérialisation JSON :

javascript
// Objet JavaScript à stocker
var utilisateur = {
  nom: "John",
  age: 30,
  email: "john@example.com"
};

// Conversion en chaîne de caractères JSON
var utilisateurJSON = JSON.stringify(utilisateur);

// Stockage dans le Local Storage
localStorage.setItem("utilisateur", utilisateurJSON);

// Récupération des données du Local Storage
var utilisateurEnregistre = localStorage.getItem("utilisateur");

// Conversion en objet JavaScript
var utilisateurDeserialise = JSON.parse(utilisateurEnregistre);

console.log(utilisateurDeserialise.nom); // Affiche "John"
console.log(utilisateurDeserialise.age); // Affiche 30
console.log(utilisateurDeserialise.email); // Affiche "john@example.com"

Gérer les données obsolètes ou inutiles

Il est important de gérer les données obsolètes ou inutiles stockées dans le Local Storage. Si vous stockez des données qui ne sont plus nécessaires, elles peuvent occuper de l'espace inutilement et affecter les performances de votre application.

Il est recommandé de mettre en place des mécanismes pour vérifier régulièrement les données du Local Storage et les supprimer si elles ne sont plus nécessaires. Vous pouvez utiliser des stratégies telles que la suppression automatique des données après une certaine durée de vie ou la suppression des données lorsqu'un événement spécifique se produit.

Bien sûr, passons au point suivant :

Gérer les données sensibles

Il est important de noter que le Local Storage n'est pas conçu pour stocker des informations sensibles, telles que des mots de passe ou des informations d'identification. Les données stockées dans le Local Storage sont accessibles en JavaScript, ce qui les rend vulnérables aux attaques de sécurité.

Si vous devez stocker des données sensibles, il est préférable de les stocker côté serveur et de les récupérer au besoin. Utilisez des mécanismes de sécurité appropriés, tels que le chiffrement des données, pour protéger les informations sensibles.

Exemples d'utilisation du Local Storage

Le Local Storage en JavaScript offre de nombreuses possibilités d'utilisation. Voici quelques exemples concrets pour illustrer comment vous pouvez tirer parti du Local Storage dans vos applications web :

Stockage de préférences utilisateur

Le Local Storage peut être utilisé pour stocker les préférences utilisateur, telles que le thème préféré, les paramètres de langue ou les préférences de mise en page. Vous pouvez enregistrer ces préférences dans le Local Storage et les récupérer lorsque l'utilisateur revient sur votre site web. Cela permet de personnaliser l'expérience utilisateur en fonction des préférences de chaque utilisateur.

javascript
// Récupération des préférences utilisateur depuis le formulaire
var preferencesUtilisateur = {
  theme: "clair",
  langue: "fr",
  miseEnPage: "grille"
};

// Conversion en chaîne de caractères JSON
var preferencesUtilisateurJSON = JSON.stringify(preferencesUtilisateur);

// Stockage dans le Local Storage
localStorage.setItem("preferencesUtilisateur", preferencesUtilisateurJSON);

// Récupération des préférences utilisateur du Local Storage
var preferencesEnregistrees = localStorage.getItem("preferencesUtilisateur");

// Conversion en objet JavaScript
var preferencesUtilisateurEnregistrees = JSON.parse(preferencesEnregistrees);

// Utilisation des préférences utilisateur
console.log(preferencesUtilisateurEnregistrees.theme); // Affiche "clair"
console.log(preferencesUtilisateurEnregistrees.langue); // Affiche "fr"
console.log(preferencesUtilisateurEnregistrees.miseEnPage); // Affiche "grille"

Mémorisation de l'état d'une application

Si votre application web nécessite de retenir l'état actuel, vous pouvez utiliser le Local Storage pour stocker cet état. Par exemple, vous pouvez enregistrer la page ou l'onglet actif, les filtres appliqués ou les éléments sélectionnés. Cela permet à l'utilisateur de retrouver l'état précédent lorsqu'il revient sur votre application.

javascript
// Récupération de l'état actuel de l'application
var etatApplication = {
  pageActive: "accueil",
  filtres: ["nouveautes", "promo"],
  elementsSelectionnes: [1, 3, 5]
};

// Conversion en chaîne de caractères JSON
var etatApplicationJSON = JSON.stringify(etatApplication);

// Stockage dans le Local Storage
localStorage.setItem("etatApplication", etatApplicationJSON);

// Récupération de l'état de l'application du Local Storage
var etatEnregistre = localStorage.getItem("etatApplication");

// Conversion en objet JavaScript
var etatApplicationEnregistre = JSON.parse(etatEnregistre);

// Utilisation de l'état de l'application
console.log(etatApplicationEnregistre.pageActive); // Affiche "accueil"
console.log(etatApplicationEnregistre.filtres); // Affiche ["nouveautes", "promo"]
console.log(etatApplicationEnregistre.elementsSelectionnes); // Affiche [1, 3, 5]