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 Juli 2015.
Die schreibgeschützte sessionStorage-Eigenschaft greift auf ein Sitzungs-Storage-Objekt für den aktuellen Ursprung zu. sessionStorage ähnelt der localStorage; der Unterschied besteht darin, dass localStorage nur nach Ursprung partitioniert ist, während sessionStorage sowohl nach Ursprung als auch nach Browser-Tabs (oberste 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 eindeutige Sitzung der Seite erstellt und diesem bestimmten Tab zugewiesen. Diese Sitzung der Seite ist nur in diesem bestimmten Tab zugänglich. Das Hauptdokument und alle eingebetteten Browsing-Kontexte (iframes) werden nach ihrem Ursprung gruppiert, und jeder Ursprung hat Zugang zu seinem eigenen separaten Speicherbereich.
- Wenn die Seite einen
openerhat, ist dassessionStorageanfangs eine Kopie dessessionStorage-Objekts des Openers. Sie sind jedoch weiterhin getrennt, und Änderungen an einem wirken sich nicht auf das andere aus. Um zu verhindern, dass dassessionStoragekopiert wird, verwenden Sie eine der Techniken, die denopenerentfernen (sieheWindow.opener). - Eine Sitzung der Seite dauert so lange, wie der Tab oder der Browser geöffnet ist, und übersteht Seitenaktualisierungen und -wiederherstellungen.
- Das Öffnen einer Seite in einem neuen Tab oder Fenster erstellt eine neue Sitzung mit dem Wert des obersten Browsing-Kontextes, was sich von der Funktionsweise von Sitzungscookies unterscheidet.
- Das Schließen des Tabs/Fensters beendet die Sitzung und löscht die Daten in
sessionStorage.
Wert
Ein Storage-Objekt, das zum Zugriff auf den Speicherbereich der aktuellen Ursprungs-Sitzung verwendet werden kann.
Ausnahmen
SecurityError-
Wird in einem der folgenden Fälle ausgelöst:
- Der Ursprung ist kein gültiges Schema/Host/Port-Tupel. Dies kann passieren, wenn der Ursprung die
file:- oderdata:-Schemen verwendet, zum Beispiel. - Die Anfrage verstößt gegen eine Richtlinienentscheidung. Beispielsweise hat der Benutzer die Browser so konfiguriert, dass die Seite keine Daten speichern darf.
Beachten Sie, dass wenn der Benutzer Cookies blockiert, dies von den Browsern wahrscheinlich als Anweisung interpretiert wird, die Seite daran zu hindern, Daten zu speichern.
- Der Ursprung ist kein gültiges Schema/Host/Port-Tupel. Dies kann passieren, wenn der Ursprung 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();
Text zwischen Aktualisierungen speichern
Das folgende Beispiel speichert den Inhalt eines Textfeldes automatisch und stellt bei Aktualisierung des Browsers den Inhalt des Textfeldes wieder her, sodass kein Schreibvorgang 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 lesen Sie den Artikel Verwendung der Web Storage API für ein vollständiges Beispiel.
Spezifikationen
| Specification |
|---|
| HTML> # dom-sessionstorage-dev> |