107 votes

Quelle est la persistance de localStorage?

Je suis dépendant fortement de l'localStorage pour un plugin, je suis en train d'écrire. Tous les paramètres de l'utilisateur sont stockées dans celui-ci. Certains paramètres nécessitent l'utilisateur de l'écriture regex es, et qu'ils seraient tristes si leur regex règles sont allés à un certain point. Alors maintenant, je me demande juste comment persistante le localStorage est.

De les specs:

Les agents utilisateurs devraient expiration de données à partir du local de stockage des zones uniquement pour des raisons de sécurité ou lorsque requis de le faire par l'utilisateur.

Le ci-dessus ressemble, il fonctionne exactement comme les cookies sur le côté client. I. e. lorsque l'utilisateur efface toutes les données du navigateur (historique, cookies, cache, etc) le localStorage sera également tronquée. Cette hypothèse est correcte?

73voto

Joseph the Dreamer Points 43727

De John Resig du Blog:

Durée

Dans les DOM Stockage , il n'est pas possible de spécifier un délai d'expiration pour l'un de vos données. Toutes les règles d'expiration laissé à l'utilisateur. Dans le cas de Mozilla, la plupart de ces règles sont hérités du Cookie règles d'expiration. En raison de cela, vous pouvez probablement s'attendre de la plupart de vos DOM Stockage de données pour durer au moins pour un montant significatif de temps.

LocalStorage agit plus comme le cache plutôt que de les cookies, où la persistance de chacun dépend de l'utilisateur paramètres du navigateur, et la façon dont le navigateur lui-même met en œuvre (car il n'existe pas de spécifications pour elle)


Mozilla met en œuvre, comme les cookies:

DOM de Stockage peut être désactivée via le menu "Outils -> supprimer l'Historique Récent -> Cookies" lors de l'intervalle de Temps est un "Tout" (via nsICookieManager::removeAll)

Chrome met en œuvre, comme le cache:

LocalStorage est Pas le Stockage Sécurisé

Le stockage local HTML5 enregistre les données non chiffrées dans la forme d'une chaîne dans l'ordinaire de la mémoire cache du navigateur.

La persistance

Sur le disque jusqu'à leur suppression par l'utilisateur (effacer cache) ou par l'application


Comme pour un "remplacement pour le Témoin", je ne le pense pas. en outre, vous ne voulez pas analyser à plus de 10 mo de données juste pour obtenir de petits morceaux - les cookies étaient destinés à faire juste cela.

Les Cookies et les locaux de stockage de servir réellement la différence de buts. Les Cookies sont principalement pour la lecture de serveur-côté, 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?

17voto

Daniel Ribeiro Points 3546

Fondamentalement, vous devriez ne pas dépendre totalement des Locaux de Stockage.

Local de Stockage, ainsi que le Stockage de Session, vise à être un remplacement de biscuits, de définir une approche plus cohérente de l'API. Il y a quelques différences à partir de ces cookies:

  • Alors que les cookies sont accessibles à partir à la fois côté client et serveur, de Stockage Web, en général, et des Locaux de Stockage, en particulier, ne sont accessibles qu'à partir du côté client.
  • Amélioration de la capacité (officielle pour l'utilisation des cookies est de 4 ko) pour plus de 5mo par domaine (Firefox, Google Chrome, Opéra et 10 MO dans IE).

Si oui, votre hypothèse est correcte.

7voto

Luke Points 833

Une chose à noter sur l'utilisation de stockage local. C'est très spécifique au navigateur. Si vous stockez des données avec firefox, elles ne seront pas disponibles en chrome, c.-à-d. Également pour effacer les cookies et les sessions, j'ai remarqué qu'il est également spécifique au navigateur de savoir si le stockage local est effacé ou non. J'examinerais beaucoup les détails si vous avez vraiment l'intention de vous appuyer sur le stockage local pour une application.

5voto

Michael Mullany Points 9020

Local de Stockage est conçu pour être fiable, la persistance de stocker des 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.

À partir de l' Déc 2011 de Stockage Web Spec Candidat Recommandation,

(Stockage Local) est conçu pour le stockage qui s'étend sur plusieurs fenêtres, et dure au-delà de la session en cours. En particulier, les applications Web peut vouloir stocker mégaoctets de données de l'utilisateur, telles que l'ensemble de la utilisateur-auteur de documents ou d'un utilisateur de boîte aux lettres, sur le côté client pour des raisons de performances.

Comme des données côté client - c'est comme persistante, comme tout côté client données, dans les limites de taille que le navigateur met en œuvre. Les utilisateurs peuvent supprimer à tout moment, l'ouvrir dans un éditeur de texte et modifier etc. comme n'IMPORTE quel client de données côté.

3voto

Wytze Points 2689

Si vous utilisez localStorage pour une application iOS, soyez très prudent. La dernière version d'iOS (5.1 à peine) a déplacé les données localstorage et localdb dans une partie du cache régulièrement effacée, c'est-à-dire pas du tout persistante. Je ne peux pas encore dire s'il s'agit d'un bogue ou d'un changement de politique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X