web-dev-qa-db-fra.com

Stockage local HTML5 par rapport au stockage de session

En plus d'être non persistant et limité à la fenêtre en cours, y at-il des avantages (performances, accès aux données, etc.) au stockage de session sur le stockage local?

467
jpkeisala

localStorage et sessionStorage les deux extensions Storage . Il n'y a pas de différence entre eux sauf pour la "non-persistance" prévue de sessionStorage.

C'est-à-dire que les données stockées dans localStorage persistent jusqu'à ce qu'elles soient explicitement supprimées. Les modifications apportées sont enregistrées et disponibles pour toutes les visites actuelles et futures du site.

Pour sessionStorage, les modifications ne sont disponibles que par fenêtre (ou par onglet dans les navigateurs tels que Chrome et Firefox). Les modifications apportées sont enregistrées et disponibles pour la page en cours, ainsi que les visites futures sur le site sur la même fenêtre. Une fois la fenêtre fermée, le stockage est supprimé.

653
tcooc

La seule différence est que localStorage a une heure d'expiration différente, sessionStorage ne sera accessible que pendant et par la fenêtre qui l'a créée est ouverte. 
localStorage dure jusqu'à ce que vous le supprimiez ou que l'utilisateur le supprime.
Disons que vous vouliez enregistrer un nom d'utilisateur et un mot de passe que vous voudriez utiliser sessionStorageover localStorage pour des raisons de sécurité (c'est-à-dire une autre personne accédant à son compte ultérieurement). 
Mais si vous souhaitez enregistrer les paramètres d'un utilisateur sur leur ordinateur, vous souhaiterez probablement localStorage. En tout:

localStorage - à utiliser pour une utilisation à long terme.
sessionStorage - à utiliser lorsque vous avez besoin de stocker quelque chose qui change ou quelque chose de temporaire 

138
MayorMonty

Peu d'autres points pouvant aider à comprendre les différences entre le stockage local et le stockage de session

  1. Le stockage local et le stockage de session sont tous deux concernés par le document Origin.

    https://mydomain.com/
    http://mydomain.com/
    https://mydomain.com:8080/

    Toutes les URL ci-dessus not partagent le même stockage. (Le chemin de notification de la page Web n'affecte pas le stockage Web)

  2. Le stockage de session est différent même si le document avec la même stratégie d'origine est ouvert dans différents onglets. Par conséquent, une même page Web ouverte dans deux onglets différents ne peut pas partagent le même stockage de session.

  3. Le stockage local et le stockage de session sont également limités par fournisseurs du navigateur. Les données de stockage enregistrées par IE ne peuvent donc pas être lues par Chrome ou FF.

J'espère que cela t'aides.

95
functionoid

La principale différence entre localStorage et sessionStorage est que sessionStorage est unique par onglet. Si vous fermez l'onglet, la variable sessionStorage est supprimée, ce n'est pas le cas de localStorage. Aussi, vous ne pouvez pas communiquer entre les onglets :)

Une autre différence subtile est que, par exemple, dans Safari (8.0.3), localStorage a une limite de 2551 k caractères mais sessionStorage a stockage illimité

Sur Chrome (v43), localStorage et sessionStorage sont limités à 5101 k caractères (aucune différence entre le mode normal/privé)

Sur Firefox, localStorage et sessionStorage sont limités à 5120 caractères k (aucune différence entre le mode normal/incognito)

Aucune différence de vitesse que ce soit :)

Il y a aussi un problème avec Mobile Safari et Mobile Chrome. En mode privé, Safari & Chrome ont un espace maximal de 0 Ko.

27
Eek

sessionStorage est identique à localStorage, sauf qu'il stocke les données pour une seule session et sera supprimé lorsque l'utilisateur ferme la fenêtre du navigateur qui l'a créée

9
Ahmad Santarissy

en termes de performances, mes mesures (brutes) n’ont pas révélé de différence sur 1000 écritures et lectures

du point de vue de la sécurité, il semblerait intuitivement que le localStore soit fermé avant le sessionStore, mais vous n'avez aucune preuve concrète - peut-être que quelqu'un d'autre le fait?

fonctionnel, d'accord avec DigitalFresh ci-dessus

9
cc young

Le stockage de session Ya et le stockage local ont le même comportement, sauf qu'un stockage local stockera les données jusqu'à ce que l'utilisateur supprime le cache et les cookies. Les données de stockage de session seront conservées dans le système jusqu'à la fermeture de la session i, e jusqu'à la fermeture. la fenêtre de stockage de session créée.

6
Bhargavi

À mon avis, l’avantage du stockage de session par rapport au stockage local est qu’il a une capacité illimitée dans Firefox et qu’il ne persistera pas plus longtemps que la session. (Bien sûr, cela dépend de votre objectif.)

5
avvett

Stockage local: Il garde en mémoire les données de l'utilisateur sans date d'expiration. Ces données ne seront pas supprimées lorsque l'utilisateur fermera la fenêtre du navigateur. Il sera disponible par jour, par semaine, par mois et par année.

//Set the value in a local storage object
localStorage.setItem('name', myName);

//Get the value from storage object
localStorage.getItem('name');

//Delete the value from local storage object
localStorage.removeItem(name);//Delete specifice obeject from local storege
localStorage.clear();//Delete all from local storege

Session Storage: Identique à la date de stockage local, sauf qu'il supprimera toutes les fenêtres lorsque les fenêtres du navigateur sont fermées par un utilisateur Web.

//set the value to a object in session storege
sessionStorage.myNameInSession = "Krishna";

Lire la suite Cliquez

1
Srikrushna Pal
  • sessionStorage maintient une zone de stockage distincte pour chaque origine donnée disponible pendant la durée de la session de page (tant que le navigateur est ouvert, y compris les recharges et restaurations de pages).

  • localStorage fait la même chose, mais persiste même lorsque le navigateur est fermé et rouvert.

J'ai pris ceci de https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API