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?
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?
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.
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
Sie localStorage
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üssen
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.
Der Hauptunterschied zwischen localStorage
und sessionStorage
besteht darin, dass er sessionStorage
pro Registerkarte eindeutig ist. Wenn Sie die Registerkarte schließen sessionStorage
, wird localStorage
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 , aber sessionStorage
hat unbegrenzten Speicherplatz
Auf Chrome (v43) sind beide localStorage
und sessionStorage
auf 5101 k Zeichen beschränkt (kein Unterschied zwischen Normal- / Inkognito-Modus)
In Firefox sind beide localStorage
und sessionStorage
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
sessionStorage
ist dasselbe wie localStorage
, 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.
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
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.
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.)
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.
//Set the value in a local storage object
localStorage.setItem('name', myName);
//Get the value from storage object
localStorage.getItem('name');
//Delete the value from local storage object
localStorage.removeItem(name);//Delete specifice obeject from local storege
localStorage.clear();//Delete all from local storege
Sitzungsspeicher: Entspricht dem lokalen Speicherdatum, löscht jedoch alle Fenster, wenn Browserfenster von einem Webbenutzer geschlossen werden.
//set the value to a object in session storege
sessionStorage.myNameInSession = "Krishna";
Lesen Sie mehr Klicken Sie
sessionStorage
verwaltet einen separaten Speicherbereich für jeden angegebenen Ursprung, der für die Dauer der Seitensitzung verfügbar ist (solange der Browser geöffnet ist, einschließlich Neuladen und Wiederherstellen von Seiten)
localStorage
macht das Gleiche, bleibt aber auch dann bestehen, wenn der Browser geschlossen und wieder geöffnet wird.
Ich habe dies von https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API übernommen