Quand localStorage est-il effacé?

112

Combien de temps puis-je espérer que les données seront conservées dans localStorage. Combien de temps les données de stockage local d'un utilisateur moyen seront-elles conservées? Si l'utilisateur ne l'efface pas, cela durera-t-il jusqu'à la réinstallation du navigateur?

Est-ce cohérent entre les navigateurs?

Bnicholas
la source

Réponses:

99

Le projet du W3C dit ceci

Les agents utilisateurs doivent expirer les données des zones de stockage locales uniquement pour des raisons de sécurité ou à la demande de l'utilisateur. Les agents utilisateurs doivent toujours éviter de supprimer des données pendant l'exécution d'un script pouvant accéder à ces données.

Donc, si les navigateurs suivent les spécifications, cela devrait persister jusqu'à ce que l'utilisateur le supprime sur tous les navigateurs, je n'en ai trouvé aucun qui ait supprimé sur l'un de mes projets.

Un bon article à lire est également http://ejohn.org/blog/dom-storage/

Dominic Green
la source
"Demandé de le faire par l'utilisateur" = lorsque l'utilisateur efface les données. Voir stevesouders.com/blog/2012/09/10/clearing-browser-data pour le nettoyage spécifique au navigateur et comment le faire.
Julien Kronegg
Le stockage local peut être effacé lors de la mise à jour de Chrome. Cela m'est arrivé deux fois au cours des 12 derniers mois. Si les données sont importantes, activez et encouragez l'utilisateur à télécharger les données pertinentes dans un fichier afin qu'elles puissent être réinstallées si cela se produit.
user2677034
116

localStorage est également connu sous le nom de stockage Web, de stockage HTML5 et de stockage DOM (tout cela signifie la même chose).

localStorage est similaire à sessionStorage, sauf que les données stockées dans localStorage n'ont pas de délai d'expiration, tandis que les données stockées dans sessionStorage sont effacées à la fin de la session de navigation (c'est-à-dire lorsque l'onglet navigateur / navigateur est fermé). Le stockage de session est beaucoup moins utilisé que localStorage et n'existe que dans l'onglet actuel du navigateur - même deux onglets chargés avec le même site Web auront des données sessionStorage différentes. Les données sessionStorage survivent à l'actualisation de la page, mais ne ferme / n'ouvre pas l'onglet. Les données LocalStorage, par contre, sont partagées entre tous les onglets et fenêtres de la même origine. Les données LocalStorage n'expirent pas; il reste après le redémarrage du navigateur et même après le redémarrage du système d'exploitation. La source

localStorage est disponible sur tous les navigateurs, mais la persistance n'est pas systématiquement implémentée. En particulier, localStorage peut être effacé par l'action de l'utilisateur et peut être effacé par inadvertance (qui penserait que la suppression de tous les cookies efface également localStorage?).

Dans Firefox, localStorage est effacé lorsque ces trois conditions sont remplies: (a) l'utilisateur efface l'historique récent, (b) les cookies sont sélectionnés pour être effacés, (c) l'intervalle de temps est "Tout"

Dans Chrome, localStorage est effacé lorsque ces conditions sont remplies: (a) effacer les données de navigation, (b) "cookies et autres données de site" est sélectionné, (c) le délai est "à partir du début des temps". Dans Chrome, il est également désormais possible de supprimer localStorage pour un site spécifique .

Dans IE, pour effacer le stockage local: (a) Outils - Options Internet, (b) Onglet Général, (c) supprimer l'historique de navigation à la sortie, (d) assurer "Cookies et données de site Web" (ou "fichiers Internet temporaires et fichiers de site Web ") est sélectionné, (e) envisagez de décocher" Conserver les données du site Web Favoris "en haut

Dans Safari: (a) Cliquez sur Safari (b) Préférences (c) Sélectionnez l'onglet Confidentialité (d) Cliquez sur Supprimer toutes les données du site Web (e) Cliquez sur Supprimer maintenant

Opera: Malgré d'excellents articles sur localStorage du site Opera, je n'ai pas encore trouvé d'instructions claires (non programmatiques) pour les utilisateurs sur la façon d'effacer localStorage. Si quelqu'un trouve, veuillez laisser un commentaire sous cette réponse avec un lien de référence.


Le site de développement d'Opera a un excellent résumé de localStorage:

La méthode actuelle de stockage des données côté client - les cookies - pose problème:

  • Taille réduite: les cookies ont généralement une taille maximale d'environ 4 Ko, ce qui n'est pas très bon pour stocker tout type de données complexes

  • Il est difficile pour les cookies de garder une trace de deux ou plusieurs transactions sur le même site, ce qui peut se produire dans deux ou plusieurs onglets différents

  • Les cookies peuvent être exploités à l'aide de techniques telles que les scripts intersites, entraînant des failles de sécurité

D'autres alternatives (moins populaires) aux cookies incluent des techniques impliquant des chaînes de requête, des champs de formulaire cachés, des objets partagés locaux basés sur Flash, etc. Chacune avec son propre ensemble de problèmes liés à la sécurité, à la facilité d'utilisation, aux restrictions de taille, etc. Donc, jusqu'à présent, nous ont utilisé de très mauvaises méthodes de stockage des données du côté de l'utilisateur. Nous avons besoin d'un meilleur moyen, c'est là que le stockage Web entre en jeu.

Espace archivage sur le Web

La spécification de stockage Web W3C a été conçue comme un meilleur moyen de stocker des données côté client. Il dispose de deux types de stockage différents: le stockage de session et le stockage local.

La session et le stockage local pourront généralement stocker environ 5 Mo de données par domaine, ce qui est nettement plus que les cookies.

Ressources:

https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

https://javascript.info/localstorage

https://dev.opera.com/articles/web-storage/

http://www.quirksmode.org/html5/storage.html

http://www.ghacks.net/2015/02/05/how-to-clear-web-storage-in-your-browser-of-choice/

https://nakedsecurity.sophos.com/2014/11/05/how-to-clear-out-cookies-flash-cookies-and-local-storage/

http://www.opera.com/dragonfly/documentation/storage/

Article DOMStorage sur MDN (écrit par John Resig)

http://ejohn.org/blog/dom-storage/

cssyphus
la source
2
J'ajouterais que vous pouvez réellement voir, modifier et supprimer ces variables localStorage en "Mode Développement" (en appuyant sur F12), dans l'onglet Stockage.
David Tabernero M.
Est-ce le même cas avec indexDB? Ie il peut également être effacé par l'action de l'utilisateur?
Pylinux
Dans IE En plus des étapes ci-dessus, l'utilisateur doit fermer le navigateur, alors seulement il peut voir la suppression de localstorage
Kyasa Madhavi
2

Le contenu de localstorage est persistant tant que l'utilisateur choisit de vider le stockage (entièrement ou une seule valeur à l'intérieur)

Concernant la cohérence entre les navigateurs, localstorage est actuellement disponible sur tous les principaux navigateurs, y compris IE8 + (voir http://caniuse.com/#feat=namevalue-storage )

Fabrizio Calderan
la source
1

Dans Chrome, tout en effectuant `` Effacer les données de navigation '', si vous choisissez l'option `` Cookies et autres données de site et de plug-in '', les données de sessionStorage seront effacées.

Uday Sravan K
la source