Wann wird localStorage gelöscht?

110

Wie lange kann ich damit rechnen, dass Daten in localStorage gespeichert werden? Wie lange bleiben die localStorage-Daten eines durchschnittlichen Benutzers erhalten? Wenn der Benutzer es nicht löscht, dauert es bis zur Neuinstallation eines Browsers?

Ist dies in allen Browsern konsistent?

Bnicholas
quelle

Antworten:

98

Der W3C-Entwurf sagt dies aus

Benutzeragenten sollten Daten aus den lokalen Speicherbereichen nur aus Sicherheitsgründen oder auf Aufforderung des Benutzers ablaufen lassen. Benutzerprogramme sollten immer vermeiden, Daten zu löschen, während ein Skript ausgeführt wird, das auf diese Daten zugreifen kann.

Wenn also Browser der Spezifikation folgen, sollte sie bestehen bleiben, bis der Benutzer sie in allen Browsern entfernt. Ich habe keine gefunden, die in einem meiner Projekte gelöscht wurden.

Ein guter Artikel zum Lesen ist auch http://ejohn.org/blog/dom-storage/

Dominic Green
quelle
"Vom Benutzer dazu aufgefordert" = wenn der Benutzer die Daten löscht. Unter stevesouders.com/blog/2012/09/10/clearing-browser-data finden Sie Informationen zur Browserspezifischen Reinigung und deren Vorgehensweise .
Julien Kronegg
Der lokale Speicher kann beim Aktualisieren von Chrome gelöscht werden. Das ist mir in den letzten 12 Monaten zweimal passiert. Wenn die Daten wichtig sind, aktivieren und ermutigen Sie den Benutzer, die relevanten Daten in eine Datei herunterzuladen, damit sie in diesem Fall erneut installiert werden können.
user2677034
113

localStorage wird auch als Web Storage, HTML5 Storage und DOM Storage bezeichnet (diese bedeuten alle dasselbe).

localStorage ähnelt sessionStorage, außer dass in localStorage gespeicherte Daten keine Ablaufzeit haben, während in sessionStorage gespeicherte Daten gelöscht werden, wenn die Browsersitzung endet (dh wenn die Registerkarte Browser / Browser geschlossen wird). Der Sitzungsspeicher wird viel seltener als localStorage verwendet und ist nur auf der aktuellen Browser-Registerkarte vorhanden. Selbst zwei mit derselben Website geladene Registerkarten enthalten unterschiedliche sessionStorage-Daten. sessionStorage-Daten überleben die Seitenaktualisierung, schließen / öffnen jedoch nicht die Registerkarte. LocalStorage-Daten werden dagegen von allen Registerkarten und Fenstern desselben Ursprungs gemeinsam genutzt. LocalStorage-Daten verfallen nicht. Es bleibt nach dem Neustart des Browsers und auch nach dem Neustart des Betriebssystems erhalten. Quelle

localStorage ist in allen Browsern verfügbar, die Persistenz ist jedoch nicht konsistent implementiert. Insbesondere kann localStorage durch Benutzeraktion gelöscht werden und kann versehentlich gelöscht werden (wer würde denken, dass das Löschen aller Cookies auch localStorage löscht?).

In Firefox wird localStorage gelöscht, wenn diese drei Bedingungen erfüllt sind: (a) Benutzer löscht den letzten Verlauf, (b) Cookies werden zum Löschen ausgewählt, (c) Zeitbereich ist "Alles"

In Chrome wird localStorage gelöscht, wenn folgende Bedingungen erfüllt sind: (a) Löschen von Browserdaten, (b) "Cookies und andere Site-Daten" wird ausgewählt, (c) Zeitrahmen ist "von Anfang an". In Chrome ist es jetzt auch möglich, localStorage für eine bestimmte Site zu löschen .

So löschen Sie im IE localStorage: (a) Tools - Internetoptionen, (b) Registerkarte Allgemein, (c) Browserverlauf beim Beenden löschen, (d) "Cookies und Website-Daten" (oder "temporäre Internetdateien und Website-Dateien" sicherstellen ") ausgewählt ist, (e) das Kontrollkästchen" Favoriten-Website-Daten beibehalten "oben deaktivieren

In Safari: (a) Klicken Sie auf Safari. (B) Einstellungen. (C) Wählen Sie die Registerkarte Datenschutz. (D) Klicken Sie auf Alle Website-Daten entfernen. (E) Klicken Sie auf Jetzt entfernen

Opera: Trotz hervorragender Artikel zu localStorage auf der Opera-Website habe ich noch keine klaren (nicht programmatischen) Anweisungen für Benutzer zum Löschen von localStorage gefunden. Wenn jemand findet, hinterlassen Sie bitte einen Kommentar unter dieser Antwort mit Referenzlink.


Die Opera-Dev-Site bietet eine hervorragende Zusammenfassung von localStorage:

Die derzeitige Art der clientseitigen Speicherung von Daten - Cookies - ist ein Problem:

  • Geringe Größe: Cookies haben im Allgemeinen eine maximale Größe von ca. 4 KB, was für die Speicherung komplexer Daten nicht besonders gut ist

  • Für Cookies ist es schwierig, zwei oder mehr Transaktionen auf derselben Site zu verfolgen, was möglicherweise auf zwei oder mehr verschiedenen Registerkarten geschieht

  • Cookies können mithilfe von Techniken wie Cross Site Scripting ausgenutzt werden, was zu Sicherheitsverletzungen führt

Andere (weniger beliebte) Alternativen zu Cookies sind Techniken, die Abfragezeichenfolgen, ausgeblendete Formularfelder, auf Flash basierende lokale gemeinsam genutzte Objekte usw. umfassen. Jedes hat seine eigenen Probleme in Bezug auf Sicherheit, Benutzerfreundlichkeit, Größenbeschränkungen usw. Bis jetzt haben wir also Ich habe ziemlich schlechte Methoden zum Speichern von Daten auf der Benutzerseite verwendet. Wir brauchen einen besseren Weg, hier kommt Web Storage ins Spiel.

Webspeicher

Die W3C-Webspeicher-Spezifikation wurde entwickelt, um Daten auf der Clientseite besser zu speichern. Es gibt zwei verschiedene Arten von Speicher: Sitzungsspeicher und lokaler Speicher.

Sowohl der Sitzungsspeicher als auch der lokale Speicher können in der Regel etwa 5 MB Daten pro Domain speichern, was deutlich mehr ist als Cookies.

Ressourcen:

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/

DOMStorage-Artikel über MDN (geschrieben von John Resig)

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

Cssyphus
quelle
2
Ich würde hinzufügen, Sie können diese localStorage-Variablen tatsächlich im "Entwicklungsmodus" (Drücken von F12) auf der Registerkarte "Speicher" sehen, ändern und entfernen.
David Tabernero M.
Ist es der gleiche Fall mit indexDB? Dh es kann auch durch Benutzeraktion gelöscht werden?
Pylinux
Im IE Zusätzlich zu den oben genannten Schritten muss der Benutzer den Browser schließen, damit nur er die Entfernung des
lokalen Speichers
2

Der Inhalt in localstorage bleibt bestehen, solange der Benutzer den Speicher löscht (vollständig oder als einzelner Wert darin).

In Bezug auf die Konsistenz zwischen den Browsern ist localstorage derzeit in allen gängigen Browsern verfügbar, einschließlich IE8 + (siehe http://caniuse.com/#feat=namevalue-storage ).

Fabrizio Calderan
quelle
1

Wenn Sie in Chrome beim Löschen von Browserdaten die Option "Cookies und andere Site- und Plugin-Daten" auswählen, werden die sessionStorage-Daten gelöscht.

Uday Sravan K.
quelle