En plus d'être non persistant et limité à la fenêtre actuelle, y a-t-il des avantages (performances, accès aux données, etc.) au stockage de session par rapport au stockage local?
En plus d'être non persistant et limité à la fenêtre actuelle, y a-t-il des avantages (performances, accès aux données, etc.) au stockage de session par rapport au stockage local?
Réponses:
localStorage et sessionStorage étendent tous deux le stockage . Il n'y a aucune différence entre eux sauf pour la "non-persistance" voulue de sessionStorage
.
Autrement dit, 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 onglet. Les modifications apportées sont enregistrées et disponibles pour la page en cours dans cet onglet jusqu'à sa fermeture. Une fois fermé, les données stockées sont supprimées.
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éé 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 mot de passe que vous souhaitez utiliser sessionStorage
plus localStorage
pour des raisons de sécurité (ie. Une autre personne accédant à leur compte à une date ultérieure).
Mais si vous souhaitez enregistrer les paramètres d'un utilisateur sur sa machine, vous le voudrez 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
Peu d'autres points qui pourraient être utiles pour comprendre les différences entre le stockage local et le stockage de session
Le stockage local et le stockage de session sont limités à l'origine du document, donc
https://mydomain.com/
http://mydomain.com/
https://mydomain.com:8080/
Toutes les URL ci-dessus ne partageront pas le même stockage. (Le chemin de notification de la page Web n'affecte pas le stockage Web)
Le stockage de session est différent même pour le document avec la même stratégie d'origine ouverte dans différents onglets, donc la même page Web ouverte dans deux onglets différents ne peut pas partager le même stockage de session.
Le stockage local et le stockage de session sont également limités par les fournisseurs de navigateurs . 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.
La principale différence entre localStorage
et sessionStorage
est qu'elle sessionStorage
est unique par onglet. Si vous fermez l'onglet, le sessionStorage
est supprimé, localStorage
non. De plus, vous ne pouvez pas communiquer entre les onglets :)
Une autre différence subtile est que, par exemple, sur Safari (8.0.3) localStorage
a une limite de 2551 k caractères mais sessionStorage
a un stockage illimité
Sur Chrome (v43) les deux localStorage
et sessionStorage
sont limités à 5101 k caractères (pas de différence entre le mode normal / incognito)
Sur Firefox les deux localStorage
et sessionStorage
sont limités à 5120 k caractères (pas de différence entre le mode normal / privé)
Aucune différence de vitesse que ce soit :)
Il y a aussi un problème avec Mobile Safari et Mobile Chrome, Safari en mode privé et Chrome ont un espace maximum de 0 Ko
sessionStorage
est identique à localStorage
, sauf qu'il stocke les données pour une seule session, et il sera supprimé lorsque l'utilisateur fermera la fenêtre du navigateur qui les a créées.
en termes de performances, mes mesures (brutes) n'ont trouvé aucune différence sur 1000 écritures et lectures
en termes de sécurité, il semblerait intuitivement que le localStore soit fermé avant le sessionStore, mais n'a aucune preuve concrète - peut-être que quelqu'un d'autre le fait?
fonctionnel, d'accord avec digitalFresh ci-dessus
Le stockage de session Ya et le stockage local ont le même comportement, sauf celui qui est le stockage local stockera les données jusqu'à ce que et à moins que l'utilisateur ne supprime le cache et les cookies et les données de stockage de session ne restent dans le système jusqu'à ce que nous fermions la session i, e jusqu'à ce que nous fermions la fenêtre de stockage de session créée.
À mon avis, l'avantage du stockage de session sur le stockage local est qu'il a une capacité illimitée dans Firefox et ne persistera pas plus longtemps que la session. (Bien sûr, cela dépend de votre objectif.)
Stockage local: il conserve les données d'informations utilisateur sans date d'expiration, ces données ne seront pas supprimées lorsque l'utilisateur fermera les fenêtres du navigateur, elles seront disponibles pour le jour, la semaine, le mois et l'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
Stockage de session: c'est la même chose que la date de stockage local, sauf qu'il supprimera toutes les fenêtres lorsque les fenêtres du navigateur seront fermées par un utilisateur Web.
//set the value to a object in session storege
sessionStorage.myNameInSession = "Krishna";
En savoir plus Cliquez
sessionStorage
maintient une zone de stockage distincte pour chaque origine donnée qui est disponible pour la durée de la session de page (tant que le navigateur est ouvert, y compris les rechargements et les restaurations de page)
localStorage
fait la même chose, mais persiste même lorsque le navigateur est fermé et rouvert.
J'ai pris cela de https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API