React Academy · Leçon

sessionStorage, IndexedDB et choix de la bonne API

Comparez les solutions de stockage du navigateur selon leur persistance, leur capacité et leur accès synchrone ou asynchrone.

Leçon 4 sur 413 étapes

sessionStorage, IndexedDB et choix de la bonne API est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Academy comprend 4 leçons au total.

sessionStorage partage la même interface

sessionStorage expose exactement les mêmes méthodes que localStorage, mais sa durée de vie est liée à l'onglet. Lorsque l'onglet ou la fenêtre est fermé, ses données sont automatiquement supprimées.

Il est également isolé par onglet : deux onglets ne partagent donc pas leurs données sessionStorage.

Cas d'utilisation : formulaire en plusieurs étapes

sessionStorage est particulièrement adapté à un assistant en plusieurs étapes lorsque vous souhaitez conserver la progression après les rechargements pendant la session, puis la supprimer à la fermeture de l'onglet.

L'utilisateur peut actualiser la page au milieu du formulaire sans perdre ses saisies, mais rien ne subsiste après la fin ou l'abandon du formulaire.

IndexedDB : asynchrone et grande capacité

IndexedDB est une base de données asynchrone et transactionnelle intégrée au navigateur. Elle peut stocker bien plus que la limite de 5 Mo de localStorage et gérer des objets structurés, des tableaux et même des données binaires.

Comme elle est asynchrone, elle ne bloque pas le fil d'exécution principal contrairement à localStorage.

Enveloppe de promesses pour IDB-Keyval

L'interface IndexedDB native est verbeuse et fondée sur les événements ; des bibliothèques comme idb-keyval l'enveloppent dans des fonctions simples fondées sur les promesses, telles que get, set et del.

Vous bénéficiez ainsi d'une ergonomie similaire à localStorage, avec la capacité et le comportement asynchrone d'IndexedDB.

IndexedDB pour les gros objets binaires

Comme IndexedDB peut stocker des valeurs Blob et ArrayBuffer, il est idéal pour mettre en cache des images, de l'audio, des fichiers téléchargés ou des ressources hors ligne.

Ces données dépasseraient rapidement les limites de localStorage et devraient être converties en chaînes, ce qu'IndexedDB permet d'éviter.

L'interface Cache pour les réponses HTTP

L'interface Cache, souvent utilisée avec des agents de service, stocke des objets Response HTTP entiers associés à une requête. Elle est conçue spécifiquement pour la mise en cache prioritaire hors ligne des réponses réseau.

Utilisez-la pour fournir des ressources et des réponses d'interface de programmation sans solliciter le réseau lorsque vous êtes hors ligne.

Comparaison de la persistance

localStorage persiste de façon permanente jusqu'à sa suppression, sessionStorage dure uniquement pendant la session de l'onglet, IndexedDB persiste de façon permanente et les cookies ont une durée d'expiration configurable via leurs attributs.

Adapter la durée de conservation souhaitée au bon stockage évite les surprises concernant la disparition des données.

Comparaison des capacités

localStorage et sessionStorage sont limités à environ 5 Mo, les cookies à environ 4 Ko chacun, tandis qu’IndexedDB peut utiliser des centaines de mégaoctets ou davantage selon l’appareil et le navigateur.

Pour toute donnée volumineuse, IndexedDB est la seule option pratique dans le navigateur.

Synchrone ou asynchrone

localStorage, sessionStorage et les cookies sont synchrones et bloquent le thread principal lors de l’accès. IndexedDB et l’API Cache sont asynchrones et fondés sur des promesses.

L’accès asynchrone maintient l’interface réactive, même lors de la lecture ou de l’écriture de grandes quantités de données.

Choisir selon le cas d’utilisation

Utilisez les cookies httpOnly pour les jetons d’authentification afin que les scripts ne puissent pas les lire, localStorage pour les petites préférences persistantes, IndexedDB pour les fichiers volumineux et les données hors ligne complexes, et sessionStorage pour les brouillons à courte durée de vie dans un onglet.

Adaptez le stockage à la sensibilité, à la taille et à la durée de vie des données.

Mise en pratique

Il n’existe pas d’API de stockage universellement meilleure ; chacune offre un compromis entre capacité, persistance, comportement de synchronisation et sécurité. Connaître leurs différences vous permet de choisir en connaissance de cause.

Une application classique en utilise plusieurs : les cookies pour l’authentification, localStorage pour les préférences et IndexedDB pour les ressources hors ligne.

Vérification rapide

Vérifiez votre compréhension des choix de stockage.

Récapitulatif

Vous avez comparé sessionStorage, localStorage, IndexedDB, les cookies et l’API Cache en matière de persistance, de capacité, de comportement de synchronisation et de sécurité.

Vous avez appris à choisir selon le cas d’utilisation : les cookies pour l’authentification, localStorage pour les petites préférences, IndexedDB pour les données volumineuses ou complexes, et sessionStorage pour les brouillons limités à un onglet.

Gratuit pour commencer

Apprends React avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
88
Leçons
324

Questions Fréquemment Posées

La leçon « sessionStorage, IndexedDB et choix de la bonne API » est-elle gratuite ?

Oui — le texte complet de « sessionStorage, IndexedDB et choix de la bonne API » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Academy, passe à CoddyKit PRO. Le cours React Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « sessionStorage, IndexedDB et choix de la bonne API » ?

Comparez les solutions de stockage du navigateur selon leur persistance, leur capacité et leur accès synchrone ou asynchrone. Tu pratiques React Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer React Academy ?

Aucune expérience préalable n'est requise. React Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « sessionStorage, IndexedDB et choix de la bonne API » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon React Academy ?

Oui. Chaque leçon React Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Lire et écrire dans localStorage avec React
  2. Synchroniser l’état avec localStorage
  3. Gérer les événements de stockage entre les onglets
  4. sessionStorage, IndexedDB et choix de la bonne API
← Retour à React Academy