Gibt es Vorteile (Leistung, Datenzugriff usw.) für den Sitzungsspeicher gegenüber dem lokalen Speicher, abgesehen davon, dass er nicht persistent ist und nur auf das aktuelle Fenster beschränkt ist?
javascript
html
local-storage
session-storage
jpkeisala
quelle
quelle
Antworten:
localStorage und sessionStorage erweitern beide den Speicher . Es gibt keinen Unterschied zwischen ihnen außer der beabsichtigten "Nicht-Persistenz" von
sessionStorage
.Das heißt, die in gespeicherten Daten
localStorage
bleiben bestehen, bis sie explizit gelöscht werden . Die vorgenommenen Änderungen werden gespeichert und stehen für alle aktuellen und zukünftigen Besuche auf der Website zur Verfügung.Für
sessionStorage
, sind Änderungen nur pro Tab verfügbar. Die vorgenommenen Änderungen werden gespeichert und stehen für die aktuelle Seite auf dieser Registerkarte zur Verfügung, bis sie geschlossen wird. Sobald es geschlossen ist, werden die gespeicherten Daten gelöscht.quelle
Der einzige Unterschied besteht darin, dass localStorage eine andere Ablaufzeit hat und
sessionStorage
nur zugänglich ist, solange und über das Fenster, das es erstellt hat, geöffnet ist.localStorage
dauert so lange, bis Sie es löschen oder der Benutzer es löscht.Nehmen wir an, Sie wollten einen Login-Benutzernamen und ein Passwort speichern, die
sessionStorage
SielocalStorage
aus Sicherheitsgründen verwenden möchten (dh eine andere Person, die zu einem späteren Zeitpunkt auf ihr Konto zugreift).Wenn Sie jedoch die Einstellungen eines Benutzers auf seinem Computer speichern möchten, möchten Sie dies wahrscheinlich
localStorage
. Alles in allem:localStorage
- zur Langzeitanwendung verwenden.sessionStorage
- Verwenden Sie diese Option, wenn Sie Änderungen oder vorübergehende Änderungen vornehmen müssenquelle
Einige andere Punkte, die hilfreich sein könnten, um die Unterschiede zwischen lokalem und Sitzungsspeicher zu verstehen
Sowohl der lokale Speicher als auch der Sitzungsspeicher sind auf den Dokumentursprung beschränkt
https://mydomain.com/
http://mydomain.com/
https://mydomain.com:8080/
Alle oben genannten URLs verwenden nicht denselben Speicher. (Der Hinweispfad der Webseite wirkt sich nicht auf den Webspeicher aus.)
Der Sitzungsspeicher unterscheidet sich auch für Dokumente mit derselben Ursprungsrichtlinie, die auf verschiedenen Registerkarten geöffnet sind. Daher kann dieselbe Webseite, die auf zwei verschiedenen Registerkarten geöffnet ist, nicht denselben Sitzungsspeicher verwenden.
Sowohl der lokale als auch der Sitzungsspeicher werden auch von Browser-Anbietern erfasst . Vom IE gespeicherte Speicherdaten können daher nicht von Chrome oder FF gelesen werden.
Hoffe das hilft.
quelle
Der Hauptunterschied zwischen
localStorage
undsessionStorage
besteht darin, dass ersessionStorage
pro Registerkarte eindeutig ist. Wenn Sie die Registerkarte schließensessionStorage
, wirdlocalStorage
das nicht gelöscht . Sie können auch nicht zwischen Registerkarten kommunizieren :)Ein weiterer feiner Unterschied besteht darin , dass zum Beispiel auf Safari (8.0.3)
localStorage
ein Limit von 2551 k Zeichen hat , abersessionStorage
hat unbegrenzten SpeicherplatzAuf Chrome (v43) sind beide
localStorage
undsessionStorage
auf 5101 k Zeichen beschränkt (kein Unterschied zwischen Normal- / Inkognito-Modus)In Firefox sind beide
localStorage
undsessionStorage
auf 5120 k Zeichen begrenzt (kein Unterschied zwischen normalem / privatem Modus)Kein Geschwindigkeitsunterschied :)
Es gibt auch ein Problem mit Mobile Safari und Mobile Chrome. Private Mode Safari & Chrome haben einen maximalen Speicherplatz von 0 KB
quelle
sessionStorage
ist dasselbe wielocalStorage
, außer dass die Daten nur für eine Sitzung gespeichert werden und sie entfernt werden, wenn der Benutzer das Browserfenster schließt, in dem sie erstellt wurden.quelle
In Bezug auf die Leistung ergaben meine (groben) Messungen keinen Unterschied bei 1000 Schreib- und Lesevorgängen
In Bezug auf die Sicherheit scheint es intuitiv, dass der localStore vor dem sessionStore heruntergefahren wird, aber keine konkreten Beweise vorliegen - vielleicht tut es jemand anderes?
In funktionaler Hinsicht stimmen Sie mit digitalFresh oben überein
quelle
Ihr Sitzungsspeicher und der lokale Speicher verhalten sich gleich, mit der Ausnahme, dass der lokale Speicher die Daten speichert, bis der Benutzer den Cache löscht und Cookies und Sitzungsspeicherdaten im System gespeichert bleiben, bis wir die Sitzung schließen, d. H. Bis wir schließen Das Fenster für den Sitzungsspeicher wurde erstellt.
quelle
Der Vorteil des Sitzungsspeichers gegenüber dem lokalen Speicher besteht meiner Meinung nach darin, dass er in Firefox über eine unbegrenzte Kapazität verfügt und nicht länger als die Sitzung bestehen bleibt. (Natürlich hängt es davon ab, was Ihr Ziel ist.)
quelle
Lokaler Speicher: Die Benutzerinformationsdaten werden ohne Ablaufdatum gespeichert. Diese Daten werden nicht gelöscht, wenn der Benutzer die Browserfenster schließt. Sie sind für Tag, Woche, Monat und Jahr verfügbar.
Sitzungsspeicher: Entspricht dem lokalen Speicherdatum, löscht jedoch alle Fenster, wenn Browserfenster von einem Webbenutzer geschlossen werden.
Lesen Sie mehr Klicken Sie
quelle
Ich habe dies von https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API übernommen
quelle