Window: sessionStorage-Eigenschaft
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die schreibgeschützte Eigenschaft sessionStorage
greift auf ein session Storage
-Objekt für den aktuellen Origin zu. sessionStorage
ist ähnlich wie localStorage
; der Unterschied besteht darin, dass localStorage
nur nach dem Origin partitioniert ist, während sessionStorage
sowohl nach Origin als auch nach Browser-Tabs (Top-Level-Browsing-Kontexte) partitioniert ist. Die Daten in sessionStorage
werden nur für die Dauer der Sitzung der Seite aufbewahrt.
- Jedes Mal, wenn ein Dokument in einem bestimmten Tab im Browser geladen wird, wird eine einzigartige Sitzung der Seite erstellt und diesem spezifischen Tab zugewiesen. Diese Sitzung der Seite ist nur in diesem spezifischen Tab zugänglich. Das Hauptdokument und alle eingebetteten Browsing-Kontexte (iframes) werden nach ihrem Origin gruppiert, und jeder Origin hat Zugriff auf seinen eigenen separaten Speicherbereich.
- Wenn die Seite eine
opener
hat, ist diesessionStorage
anfänglich eine Kopie dessessionStorage
-Objekts des Openers. Sie bleiben jedoch getrennt, und Änderungen an einer haben keinen Einfluss auf die andere. Um zu verhindern, dass diesessionStorage
kopiert wird, verwenden Sie eine der Techniken, die denopener
entfernen (sieheWindow.opener
). - Eine Sitzung der Seite dauert, solange der Tab oder der Browser geöffnet ist, und überlebt Seiten-Neuladungen und -Wiederherstellungen.
- Das Öffnen einer Seite in einem neuen Tab oder Fenster erstellt eine neue Sitzung mit dem Wert des Top-Level-Browsing-Kontextes, was sich von der Funktionsweise der Sitzungs-Cookies unterscheidet.
- Das Schließen des Tabs/Fensters beendet die Sitzung und löscht die Daten in
sessionStorage
.
Wert
Ein Storage
-Objekt, das verwendet werden kann, um auf den Sitzungsspeicherraum des aktuellen Origins zuzugreifen.
Ausnahmen
SecurityError
-
Wird in einem der folgenden Fälle ausgelöst:
- Der Origin ist kein gültiges Schema/Host/Port-Tupel. Dies kann passieren, wenn der Origin beispielsweise die
file:
- oderdata:
-Schemata verwendet. - Die Anfrage verstößt gegen eine Richtlinienentscheidung. Zum Beispiel hat der Benutzer den Browser so konfiguriert, dass er der Seite verbietet, Daten zu speichern.
Beachten Sie, dass, wenn der Benutzer Cookies blockiert, die Browser dies wahrscheinlich als Anweisung interpretieren, der Seite zu verbieten, Daten zu speichern.
- Der Origin ist kein gültiges Schema/Host/Port-Tupel. Dies kann passieren, wenn der Origin beispielsweise die
Beispiele
Grundlegende Verwendung
// Save data to sessionStorage
sessionStorage.setItem("key", "value");
// Get saved data from sessionStorage
let data = sessionStorage.getItem("key");
// Remove saved data from sessionStorage
sessionStorage.removeItem("key");
// Remove all saved data from sessionStorage
sessionStorage.clear();
Speicherung von Text zwischen Aktualisierungen
Das folgende Beispiel speichert den Inhalt eines Textfeldes automatisch, und wenn der Browser aktualisiert wird, stellt es den Inhalt des Textfeldes wieder her, sodass kein Text verloren geht.
// Get the text field that we're going to track
let field = document.getElementById("field");
// See if we have an autosave value
// (this will only happen if the page is accidentally refreshed)
if (sessionStorage.getItem("autosave")) {
// Restore the contents of the text field
field.value = sessionStorage.getItem("autosave");
}
// Listen for changes in the text field
field.addEventListener("change", () => {
// And save the results into the session storage object
sessionStorage.setItem("autosave", field.value);
});
Hinweis: Bitte konsultieren Sie den Artikel Using the Web Storage API für ein vollständiges Beispiel.
Spezifikationen
Specification |
---|
HTML # dom-sessionstorage-dev |