Umfang von sessionStorage und localStorage

105

Ich habe einige Dokumentationen zu sessionStorage und localStorage gelesen, verstehe aber nicht, was der Bereich ist: die Domäne, eine bestimmte Seite?

Zum Beispiel, wenn ich folgende Seiten habe:

http://example.com/products.aspx?productID=1

http://example.com/products.aspx?productID=2

http://example.com/services.aspx?serviceID=3

Und wenn ich auf jeder der oben genannten Seiten laufe (wobei idvalue der Wert im Querystring ist):

localStorage.setItem('ID',idvalue);

Werde ich am Ende 3 verschiedene Werte speichern oder werden sich die Werte gegenseitig überschreiben?

Christophe
quelle

Antworten:

87

Die Werte werden sich gegenseitig überschreiben. Jedes Schlüssel-Name-Paar ist für ein Protokoll und eine Domäne unabhängig von den Pfaden eindeutig.

Die betroffene Domain kann über die document.domainEigenschaft geändert werden .

  • sub.example.com-> example.comist möglich (Subdomain)
  • sub.example.com-> other.example.comist nicht möglich
Rob W.
quelle
Vielen Dank! Möchten Sie eine Referenz empfehlen, die localStorage ausführlich erklärt?
Christophe
2
@Christophe MDN: Speicher und W3c: Webspeicher .
Rob W
1
Nun, selbst nachdem ich die MDN-Seite gelesen habe, kann ich immer noch keine Antwort auf meine Frage finden ... Trotzdem nochmals vielen Dank!
Christophe
1
@Christophe Ich habe meine Aussagen vor einiger Zeit überprüft, indem ich die webappsstore.sqlitein meinem Firefox-Profilverzeichnis aufgerufene SQLite (3) -Datenbank mithilfe einer Abfrage angezeigt habe SELECT scope FROM webappsstore2;. Das Ergebnis ist die Umkehrung der Domäne, gefolgt vom nicht umgekehrten Protokoll, und reicht mit dem Port aus, z gro.allizom.snodda.secivres.:https:443. Wie Sie sehen können, wird kein Pfad erwähnt.
Rob W
Hier ist die Dokumentation der document.domainAPI erwähnt: html.spec.whatwg.org/multipage/…
mltsy
148

Sitzungsspeicher:

  1. Die Werte bleiben nur so lange bestehen wie das Fenster oder die Registerkarte, in dem sie gespeichert wurden.

  2. Werte sind nur in dem Fenster oder der Registerkarte sichtbar, in dem sie erstellt wurden.

Lokaler Speicher:

  1. Die Werte bleiben für die Lebensdauer von Fenstern und Browsern erhalten.

  2. Die Werte werden in allen Fenstern oder Registerkarten geteilt, die am selben Ursprung ausgeführt werden.

Wenn Sie dies lesen und verstehen, ist jedes Schlüssel-Wert-Paar für jede Domäne eindeutig, da der lokale Speicher die Werte über Fenster oder Registerkarten hinweg beibehält.

Talha
quelle
3
Vielen Dank. Könnten Sie den Link zu dieser Referenz teilen?
Christophe
3
Der obige Link ist jetzt nicht mehr verfügbar. Dies ist eine weitere großartige Ressource: sitepoint.com/an-overview-of-the-web-storage-api
chrisjlee
Die Schlussfolgerung mag richtig sein, aber nicht die Begründung. Selbst wenn der Speicher pro Seite wäre, könnte er über Fenster / Registerkarten hinweg bestehen bleiben.
Pyrocrasty