Je compte énormément sur localStorage pour un plugin que j'écris. Tous les paramètres utilisateur y sont stockés. Certains paramètres nécessitent que l'utilisateur écrive les expressions rationnelles et ils seraient tristes si leurs règles sur les expressions rationnelles disparaissent à un moment donné. Alors maintenant, je me demande à quel point le stockage local est persistant.
De les specs :
Les agents d'utilisateur doivent expirer les données des zones de stockage locales uniquement pour des raisons de sécurité ou à la demande de l'utilisateur.
Ce qui précède ressemble à cela fonctionne exactement comme des cookies côté client. C'est à dire. Lorsque l'utilisateur efface toutes les données du navigateur (historique, cookies, cache, etc.), le stockage local sera également tronqué. Cette hypothèse est-elle correcte?
Mozilla l'implémente comme des cookies:
Le stockage DOM peut être effacé via "Outils -> Effacer l'historique récent -> Cookies" lorsque l'intervalle de temps est "Tout" (via nsICookieManager :: removeAll)
https://developer.mozilla.org/en/DOM/Storage
Dans le stockage DOM il n'est pas possible de spécifier une période d'expiration pour vos données. Toutes les règles d'expiration sont laissées à l'utilisateur. Dans le cas de Mozilla, la plupart de ces règles sont héritées des règles d'expiration relatives aux cookies. De ce fait, vous pouvez probablement vous attendre à ce que la plupart de vos données de stockage DOM durent au moins pendant une durée significative.
Chrome l'implémente comme cache:
LocalStorage n'est pas un stockage sécurisé
Le stockage local HTML5 enregistre les données non chiffrées sous forme de chaîne dans le cache du navigateur standard .
Persistance
Sur le disque jusqu'à ce qu'il soit supprimé par l'utilisateur (supprimer le cache) ou par l'application
https://developers.google.com/web-toolkit/doc/latest/DevGuideHtml5Storage
En ce qui concerne "le remplacement du cookie", pas entièrement
Les cookies et le stockage local servent vraiment à des fins différentes. Les cookies sont principalement destinés à la lecture côté serveur, LocalStorage ne peut être lu que côté client. La question est donc, dans votre application, qui a besoin de ces données - le client ou le serveur?
Fondamentalement, vous devriez pas dépendent fortement du stockage local.
Le stockage local, ainsi que le stockage de session, vise à remplacer les cookies en définissant une API plus cohérente. Il y a quelques différences avec les cookies:
Donc oui, votre hypothèse est correcte.
Une chose à noter sur l'utilisation du stockage local. C'est très spécifique au navigateur. Si vous stockez des données avec Firefox, elles ne seront pas disponibles dans chrome ou c.-à-d., Etc.). Aussi, en ce qui concerne l'effacement des cookies et des sessions, j'ai remarqué qu'il est également spécifique à votre navigateur de savoir si Je me pencherais beaucoup sur les détails si vous envisagez de vous fier à un stockage local pour une application.
Le stockage local est conçu pour être un stockage fiable et persistant de données sur un client. Il n'est pas conçu comme un "meilleur cookie": cette fonction est conçue pour être remplie par le stockage de session.
D'après le recommandation du candidat au stockage Web pour décembre 2011 ,
(Stockage local) est conçu pour un stockage couvrant plusieurs fenêtres et se prolongeant au-delà de la session en cours. En particulier, les applications Web peuvent souhaiter stocker des mégaoctets de données utilisateur, telles que des documents entiers créés par l'utilisateur ou la boîte aux lettres d'un utilisateur, côté client, pour des raisons de performances.
En tant que données côté client, elles sont aussi persistantes que toutes les données côté client, dans les limites de taille que le navigateur implémente. Les utilisateurs peuvent le supprimer à tout moment, l'ouvrir dans un éditeur de texte et l'éditer, etc. - comme pour TOUTES les données côté client.
Si vous utilisez localStorage pour une application iOS, soyez très prudent. La dernière version d’iOS (la version 5.1 me vient à l’esprit) a déplacé les données localstorage et localdb dans une partie du cache régulièrement effacée, c’est-à-dire qu’elle n’est pas persistante. Je ne peux pas encore dire s'il s'agit d'un bogue ou d'un changement de politique.