Ist das HTML5 localStorage-Objekt pro Seite / Domäne isoliert? Ich frage mich, wie ich localStorage-Schlüssel benennen würde. Benötige ich ein separates Präfix? Oder kann ich sie benennen, was ich will?
javascript
html
local-storage
Nathan Moos
quelle
quelle
Antworten:
Es ist pro Domain und Port (die gleichen Segregationsregeln wie die gleiche Ursprungsrichtlinie ), um es pro Seite zu machen, müssten Sie einen Schlüssel verwenden, der auf dem
location
oder einem anderen Ansatz basiert .Sie müssen nicht brauchen ein Präfix, verwenden Sie ein , wenn Sie es brauchen though. Ja, Sie können sie auch benennen, was Sie wollen.
quelle
protocol://host:port
Kombination.Die Speicher befinden sich pro Ursprung , wobei "Ursprung" derselbe ist wie für die Richtlinie für denselben Ursprung (eine Kombination aus Schema [
http
vs.https
usw.], Port und Host). Aus der Spezifikation :Daher sind der Speicher für
http://a.example.com
und der Speicher fürhttp://b.example.com
getrennt (und beide sind getrennt vonhttp://example.com
), da dies alles unterschiedliche Hosts sind. Ebensohttp://example.com:80
undhttp://example.com:8080
undhttps://example.com
sind alle unterschiedliche Ursprünge.In den Webspeicher ist kein Mechanismus integriert, mit dem ein Ursprung auf den Speicher eines anderen zugreifen kann.
Beachten Sie, dass es sich um den Ursprung und nicht um die URL handelt
http://example.com/page1
undhttp://example.com/page2
beide Zugriff auf den Speicher für habenhttp://example.com
.quelle
Ja, jede Domain / Subdomain hat einen anderen localStorage und Sie können die Schlüssel beliebig aufrufen (Präfix ist nicht erforderlich).
Um einen Schlüssel zu erhalten, können Sie den Methodenschlüssel (Index) wie z
Es gab zuvor ein Objekt namens globalStorage, in dem Sie mehrere localStorages haben konnten, das jedoch aus den Spezifikationen nicht mehr stammt
quelle
Wie andere bereits betont haben, ist localStorage pro Protokoll, Host und Port eindeutig. Wenn Sie Ihren Speicher auf praktische Weise mit Präfixschlüsseln steuern möchten, empfehle ich localDataStorage .
Es hilft nicht nur dabei, segmentierten gemeinsam genutzten Speicher innerhalb derselben Domäne durch Präfixieren von Schlüsseln zu erzwingen, sondern speichert auch transparent Javascript-Datentypen (Array, Boolescher Wert, Datum, Float, Ganzzahl, Zeichenfolge und Objekt), bietet eine einfache Datenverschleierung, komprimiert automatisch Zeichenfolgen und Erleichtert die Abfrage nach Schlüssel (Name) sowie die Abfrage nach (Schlüssel) Wert.
[HAFTUNGSAUSSCHLUSS] Ich bin der Autor des Dienstprogramms [/ HAFTUNGSAUSSCHLUSS]
Beispiele:
Wie Sie sehen, werden primitive Werte berücksichtigt, und Sie können mehrere Instanzen erstellen, um Ihren Speicher zu steuern.
quelle
Es ist überall in dieser Domain verfügbar, wie Nick vorgeschlagen hat. Alternativ funktioniert sessionStorage etwas anders, da es sich vom Browserfenster selbst unterscheidet. Das heißt, andere Registerkarten oder Fenster in derselben Domäne haben keinen Zugriff auf dieselbe Kopie des Speicherobjekts.
quelle