710 Stimmen

HTML5 Local Storage vs. Sitzungsspeicher

Abgesehen davon, dass es nicht persistent ist und nur für das aktuelle Fenster gültig ist, gibt es weitere Vorteile (Leistung, Datenzugriff usw.) von der Session Storage im Vergleich zur Local Storage?

19 Stimmen

@robert - Ich glaube, du liegst falsch. Aus w3.org/TR/webstorage ist sessionStorage auf den "top-level Browsing-Kontext" beschränkt, was bedeutet, dass es für jeden Browser-Tab/Fenster einzigartig ist. localStorage ist jedoch auf den Ursprung beschränkt, was bedeutet, dass es für alle Seiten mit demselben Ursprung gemeinsam genutzt wird.

6 Stimmen

5 Stimmen

1022voto

tcooc Punkte 19834

localStorage und sessionStorage erweitern beide Storage. Es gibt keinen Unterschied zwischen ihnen, außer der beabsichtigten "Nicht-Dauerhaftigkeit" von sessionStorage.

Das heißt, die in localStorage gespeicherten Daten bleiben erhalten, bis sie explizit gelöscht werden. Gemachte Änderungen werden gespeichert und sind für alle aktuellen und zukünftigen Besuche auf der Website verfügbar.

Für sessionStorage sind Änderungen nur pro Tab verfügbar. Gemachte Änderungen werden gespeichert und sind für die aktuelle Seite in diesem Tab verfügbar, bis er geschlossen wird. Sobald er geschlossen ist, werden die gespeicherten Daten gelöscht.

20 Stimmen

Es gibt eine breitere Diskussion, die Ihnen hier hilfreich sein könnte: stackoverflow.com/questions/19867599/…

18 Stimmen

Wenn Sie einige Daten unter http in den Speicher speichern, können Sie sie nicht unter https abrufen.

0 Stimmen

Ich habe dies auf Chrome v41.x getestet und es scheint, dass die obige Aussage über https nicht korrekt ist: localStorage behält seine gespeicherten Daten bei.

180voto

bren Punkte 4082

Der einzige Unterschied besteht darin, dass localStorage eine andere Ablaufzeit hat; sessionStorage ist nur zugänglich, solange und von dem Fenster aus, das es geöffnet hat.
localStorage bleibt bestehen, bis du es löschst oder der Benutzer es löscht.
Angenommen, du möchtest einen Login-Benutzernamen und ein Passwort speichern, dann würdest du aus Sicherheitsgründen sessionStorage anstelle von localStorage verwenden (z. B. wenn eine andere Person zu einem späteren Zeitpunkt auf ihr Konto zugreifen würde).
Aber wenn du die Einstellungen eines Benutzers auf seinem Gerät speichern möchtest, würdest du wahrscheinlich localStorage verwenden. Alles in allem:

localStorage - verwenden für langfristige Nutzung.
sessionStorage - verwenden, wenn du etwas speichern musst, das sich ändert oder vorübergehend ist

119voto

functionoid Punkte 1882

Ein paar weitere Punkte, die hilfreich sein könnten, um die Unterschiede zwischen lokalem und Session-Speicher zu verstehen

  1. Sowohl lokaler Speicher als auch Session-Speicher sind auf den Dokumentenursprung beschränkt, also

    https://mydomain.example/
    http://mydomain.example/
    https://mydomain.example:8080/

    All diese URLs werden nicht den gleichen Speicher teilen. (Beachten Sie, dass der Pfad der Webseite den web storage nicht beeinflusst)

  2. Session-Speicher unterscheidet sich auch für das Dokument mit der gleichen Ursprungsrichtlinie, das in verschiedenen Registerkarten geöffnet ist, daher können dieselbe Webseite in zwei verschiedenen Registerkarten nicht denselben Session-Speicher teilen.

  3. Sowohl lokaler als auch Session-Speicher sind auch von Browserherstellern abhängig. Daher kann von IE gespeicherte Daten nicht von Chrome oder FF gelesen werden.

3 Stimmen

Nein, sessionStorage wird zwischen http und https gemeinsam genutzt, aber localStorage nicht.

8 Stimmen

Wenn Sie zuerst sessionStorage in der https-Ursprung einstellen, wird es in http verfügbar sein, aber wenn Sie sessionStore in http erstellen, wird es in http nicht verfügbar sein.

6 Stimmen

@Shahdat, meintest du "dann wird nicht verfügbar sein in https" (beachte das s)?

36voto

Eek Punkte 1680

Der Hauptunterschied zwischen localStorage und sessionStorage ist, dass sessionStorage pro Tab einmalig ist. Wenn Sie den Tab schließen, wird der sessionStorage gelöscht, localStorage nicht. Außerdem können Sie nicht zwischen Tabs kommunizieren :)

Ein weiterer subtiler Unterschied besteht darin, dass beispielsweise in Safari (8.0.3) localStorage eine Begrenzung von 2551 k Zeichen hat, aber sessionStorage unbegrenzten Speicher hat

In Chrome (v43) sind sowohl localStorage als auch sessionStorage auf 5101 k Zeichen begrenzt (kein Unterschied zwischen Normal- / Inkognito-Modus)

In Firefox sind sowohl localStorage als auch sessionStorage auf 5120 k Zeichen begrenzt (kein Unterschied zwischen Normal- / privatem Modus)

Überhaupt kein Unterschied in der Geschwindigkeit :)

Es gibt auch ein Problem mit Mobile Safari und Mobile Chrome, im Privatmodus haben Safari und Chrome einen maximalen Speicherplatz von 0 KB

1 Stimmen

Begrenzt auf 5101 K Zeichen? Also.. 5,101 Millionen Zeichen?

0 Stimmen

@Zze Ja, 1 Zeichen entspricht in der Regel 1 Byte, daher sind 5 Millionen Zeichen 5 MB Speicherplatz wert.

0 Stimmen

@BasimKhajwal Das sind 5 MB. Bytes, keine Bits.

19voto

Ahmad Santarissy Punkte 587

sessionStorage ist das Gleiche wie localStorage, außer dass es die Daten nur für eine Sitzung speichert und sie entfernt werden, wenn der Benutzer das Browserfenster schließt, das es erstellt hat.

0 Stimmen

Hast du das Tab statt des Fensters gemeint?

0 Stimmen

Der Browser behandelt sowohl Tabs als auch Fenster auf die gleiche Weise.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X