Vous êtes-vous déjà demandé si vous deviez utiliser localStorage ou sessionStorage dans votre application Web ? Vous n'êtes pas seul !
J'y suis allé moi aussi – je me demandais laquelle de ces deux options de stockage serait idéale pour mon cas d'utilisation.
Écoutez, le stockage Web n'est pas la partie la plus fascinante du développement Web, mais il est essentiel pour créer des applications Web modernes qui font réellement quelque chose.
Si vous souhaitez enregistrer les préférences utilisateur, travailler avec des données de formulaire ou des paniers d'achat, vous devez décider quelle méthode de stockage est appropriée à votre cas d'utilisation.
Je ne veux pas expliquer tous les détails car ce serait trop de théorie et parfois la théorie prête à confusion. Je vais vous montrer les deux stockages avec de vrais exemples de code.
Vous saurez quand appliquer quelle solution à la fin de ce post...
Alors reste avec moi !
localStorage est comme un cahier et sessionStorage est comme une pile de notes autocollantes. Votre carnet restera avec vous jusqu'à ce que vous arrachiez des pages (effacer les données), tandis que les notes autocollantes seront jetées lorsque vous fermerez le tiroir de votre bureau (fin de session).
Voici quelques points communs :
Ils stockent tous deux des données sous forme de valeur clé.
Ils vous offrent environ 5 à 10 Mo de stockage (selon le navigateur)
Ils sont synchrones et ne stockent que des chaînes (oui, même vos objets nécessitent une conversion JSON)
Ils sont accessibles via les mêmes API simples.
Maintenant, voici en quoi ils diffèrent :
Stockage local :
Reste jusqu'à ce que vous l'effaciez manuellement
Conserver les données dans les onglets et les fenêtres du navigateur
Ne persistez pas quelque chose trop longtemps (comme les préférences de l'utilisateur ou l'état de la partie sauvegardée)
sessionStorage :
Il disparaît lorsque vous fermez l'onglet de votre navigateur.
Reste isolé dans l'onglet spécifique dans lequel vous travaillez
Parfait pour les données éphémères qui ne doivent pas être conservées (comme l'état du formulaire ou les jetons uniques)
Remarque rapide : Les deux types de stockage sont uniquement front-end. Ne travaillez pas avec des données sensibles ici : c'est à cela que sert le stockage back-end sécurisé.
Soyons réalistes : vous utilisez probablement ce stockage la plupart du temps, et pour de bonnes raisons. Lorsque vous avez besoin de conserver des données entre les sessions du navigateur, il n'y a pas de meilleur choix qu'avec localStorage.
Meilleurs cas d'utilisation pour localStorage :
Avertissement rapide : j'ai vu trop de développeurs les apprendre à leurs dépens :
Laissez-moi vous donner un exemple concret avec un sélecteur de thème très simple.
const themeToggle = document.getElementById('theme-toggle'); const body = document.body; // Check for saved theme on page load document.addEventListener('DOMContentLoaded', () => { const savedTheme = localStorage.getItem('theme'); if (savedTheme) { body.classList.add(savedTheme); themeToggle.checked = savedTheme === 'dark-mode'; } }); // Handle theme changes themeToggle.addEventListener('change', () => { if (themeToggle.checked) { body.classList.add('dark-mode'); localStorage.setItem('theme', 'dark-mode'); } else { body.classList.remove('dark-mode'); localStorage.setItem('theme', 'light-mode'); } });
Ce code est assez simple, il enregistrera le thème préféré de l'utilisateur et s'appliquera automatiquement à chaque fois que l'utilisateur reviendra. Rien d'extraordinaire, juste être pratique.
Parfois, vous avez besoin de données pour rester un peu - c'est là que sessionStorage brille.
Pensez à ces moments où vous souhaitez suivre quelque chose jusqu'à ce que votre utilisateur ferme l'onglet de son navigateur, et pas une seconde de plus.
Scénarios parfaits pour sessionStorage :
Voici notre code de formulaire en plusieurs étapes qui montre sessionStorage en action :
// Multi-Step Form Mini-Project const formSteps = { saveStep(stepNumber, data) { sessionStorage.setItem(`formStep${stepNumber}`, JSON.stringify(data)); }, loadStep(stepNumber) { const savedData = sessionStorage.getItem(`formStep${stepNumber}`); return savedData ? JSON.parse(savedData) : null; }, clearForm() { // Clear only our form data, not other sessionStorage items for (let i = 1; i <= 3; i++) { sessionStorage.removeItem(`formStep${i}`); } } }; // Example usage in form steps document.getElementById('step1-form').addEventListener('submit', (e) => { e.preventDefault(); const data = { name: document.getElementById('name').value, email: document.getElementById('email').value }; formSteps.saveStep(1, data); // Move to next step }); // Load saved data when user returns to a step window.addEventListener('load', () => { const step1Data = formSteps.loadStep(1); if (step1Data) { document.getElementById('name').value = step1Data.name; document.getElementById('email').value = step1Data.email; } });
La clé ici est que si quelqu'un ferme accidentellement l'onglet, il recommencera à zéro - aucune donnée obsolète ne traîne. Mais s’ils ne font que naviguer entre les étapes, leur progression est sécurisée.
Allons droit au but : voici ce qui devrait motiver votre décision de stockage :
Choisissez localStorage lorsque :
Utilisez sessionStorage quand :
Conseils de performance qui comptent vraiment :
Les pièges courants :
Réflexions finales : Choisissez le bon outil pour le bon travail. localStorage n'est pas toujours meilleur simplement parce qu'il est persistant, et sessionStorage n'est pas toujours meilleur simplement parce qu'il est plus propre. Pensez d'abord aux besoins de vos utilisateurs.
En cas de doute, demandez-vous :
"Ces données doivent-elles survivre au redémarrage du navigateur ?"
C'est tout ce qu'il faut savoir pour faire le bon choix. Commencez à construire !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!