Kann sessionStorage zwischen mehreren Registerkarten direkt gemeinsam genutzt und darauf zugegriffen werden?

Lassen Sie uns zunächst auf der nächsten Seite verstehen, was sessionStorage ist.

1. Der aktuelle sessionStorage-Wert von Seite A ist 123. Ich aktualisiere die Seite mit F5. Ist der sessionStorage-Wert noch da?

Antwort: Ja.

2. Der aktuelle sessionStorage-Wert von Seite A ist 123. Ich kopiere die Adresse von Seite A, öffne eine neue TAB-Seite im Browser und füge die Adresse ein, um auf Seite A zuzugreifen. Ist der sessionStorage-Wert von 123 noch da?

Antwort: Nein.

Wenn Sie mehrere Tabs-Seiten mit derselben URL öffnen, wird eine eigene erstellt  sessionStorage.

 3. Der aktuelle sessionStorage-Wert von Seite A ist 123. Ich schließe die Registerkarte von Seite A und verwende die Öffnungsverlaufsseite des Browsers, um Seite A wiederherzustellen. Ist der sessionStorage-Wert noch da?

Antwort: Ja.

Die Seitensitzung wird beibehalten, während der Browser geöffnet ist. Durch das erneute Laden oder Wiederherstellen der Seite wird die ursprüngliche Seitensitzung beibehalten.

4. Kann sessionStorage zwischen mehreren Registerkarten direkt gemeinsam genutzt und darauf zugegriffen werden?

Okay, zurück zur eigentlichen Frage: „Kann sessionStorage zwischen mehreren Registerkarten direkt gemeinsam genutzt und genutzt werden?“ Sagen Sie nicht gleich „nein“. Die Antwort auf diese Frage wird ein paar Minuten dauern. 

Situation 1: Kann der SessionStorage von Seiten mit unterschiedlichen Domainnamen direkt geteilt und aufgerufen werden?

Antwort: Nein.

 Szenario 2: Können sessionStorage-Seiten mit demselben Domänennamen direkt geteilt und darauf zugegriffen werden?

Hier gibt es viele Situationen:

Die folgenden A und B befinden sich beide unter demselben Domänennamen. Nehmen Sie als Beispiel den sessionStorage-Wert „window.sessionStorage.setItem(“Dies ist die erste Seite“, „123“)“.

1. Klicken Sie auf Seite A auf die Schaltfläche, um window.open('./B.html) aufzurufen und Seite B zu öffnen. Wir können sehen, dass der SessionStorage auf Seite B mit dem SessionStorage auf Seite A identisch ist.

Das Öffnen über ein Tag ist dasselbe wie window.open

<a href="./B.html" target="_block">这是跳转B页面的a标签</a>

Antwort: Seite B kann auf den sessionStorage-Wert von Seite A zugreifen.

 

Die obige Situation wirft eine neue Frage auf: Teilt Seite B direkt den Sitzungsspeicher von Seite A? Oder eine Kopie des sessionStorage von Seite A kopieren und auf Seite B ablegen?

Erkundungsprozess: Wir führen window.sessionStorage.setItem("Dies ist die erste Seite", "456") auf Seite A aus und ändern den Wert von sessionStorage. Wir können sehen, dass sich der sessionStorage von Seite A geändert hat und wann die Sitzung Der Speicherwert von Seite A beträgt immer noch 123, der Sitzungsspeicherwert von Seite B, die über window.open geöffnet wurde, beträgt immer noch 123.

2. Es gibt einen sessionStorage-Wert auf Seite A. Wir kopieren direkt die Adresse von Seite B und erstellen eine neue Registerkarte im selben Fenster des Browsers. Geben Sie die Adresse von Seite B ein und drücken Sie die Eingabetaste, um Seite B zu öffnen.

Antwort: Seite B kann den sessionStorage-Wert, auf den zugegriffen wird, nicht auf Seite A kopieren.

Basierend auf der obigen Situation ziehen wir eine Schlussfolgerung:

Der SessionStorage verschiedener Domänennamen kann nicht gemeinsam genutzt werden, und der SessionStorage-Status kann nicht zwischen mehreren Fenstern desselben Domänennamens geteilt werden! ! !

Aber in einigen spezifischen Szenarien: Die Seite mit demselben Ursprung, die als neuer Tab oder neues Fenster auf dieser Seite geöffnet wird, kopiert den SessionStorage der vorherigen Seite. Aber es ist nur eine Kopie. Wenn der sessionStorage auf der A-Seite geändert wird, wird der sessionStorage-Wert der geöffneten B-Seite entsprechend aktualisiert, es sei denn, Sie öffnen eine neue B-Seite auf der A-Seite.

Supongo que te gusta

Origin blog.csdn.net/tt18473481961/article/details/131569918
Recomendado
Clasificación