Siehe auch Dive into Html 5 / Webstorage
Siehe auch w3schools Web Storage Referenz
Siehe auch meinen Tipp Webstorage Javascript
Mit Web Storage wurde eine neue Möglichkeit geschaffen, Daten auf dem User Rechner zu speichern. Eine Alternative zu Cookies, welche in der Regel mit PHP programmiert wurden. Web Storage ist jedoch sicher und schnell und man kann größere Datenmengen ohne Performance Verlust abspeichern (bis zu 5 MB).
Die Daten werden nach dem Schema Name / Wert gespeichert. Eine Website kann nur die Daten abrufen, die sie selbst gespeichert hat. Die Daten werden nicht erst an den Server geschickt, sondern direkt über den Browser gespeichert und abgerufen.
Wozu braucht man das?
Generell braucht man es immer wenn man Variablen / Werte über mehrere Seiten hinweg abspeichern und abrufen will. Die Variablen können eine unbegrenzte Lebensdauer haben, oder nur innerhalb einer Session Gültigkeit haben.
Es gibt 2 Arten Daten zu speichern:
Ob der Browser die Web Storage unterstützt, kann man mit folgender if- Struktur innerhalb eines Script Bereichs überprüfen.
if(typeof(Storage) !== "undefined") { // Code für localStorage/sessionStorage. } else { // Sorry! Keine Web Storage Unterstützung.. }
Wie anfangs erwähnt, kann man mit dem localStorage
Objekt Daten dauerhaft speichern. Die Werte werden immer als Strings (Zeichenketten in Anführungszeichen) gespeichert. Man muss sie dann bei Bedarf umwandeln. Mit folgenden Funktionen werden die Daten gespeichert und abgerufen.
Speichern:
localStorage.setItem("soundOn", "true");
Abrufen:
document.getElementById("result").innerHtml = localStorage.getItem("soundOn");
Für dieses Beispiel ist auch eine alternative Schreibweise möglich:
localStorage.soundOn = "true";
document.getElementById("result").innerHtml = localStorage.soundOn;
Mit der ersten Funktion wird ein localStorage Objekt erzeugt und die Variable soundOn mit dem Wert true hinterlegt. Unter Abrufen wird mittels localStorage.getItem("soundOn")
oder in der alternativen Schreibweise mit localStorage.soundOn
dieser hinterlegte Wert abgerufen. Dieser Wert wird in den Gültigkeitsbereich eines HTML Elements mit der id="result"
geschrieben. Siehe dazu auch meine Javascript Tipps zum Thema.
Folgendermaßen kann man überprüfen, ob eine Variable namens"counter" schon vorhanden ist.
if(localStorage.counter){/*weitere Anweisungen*/}
Hier werden Seitenaufrufe gespeichert und abgerufen Beispiel
Ein Beispiel, welches die Seitenaufrufe speichert. Beispiel
Hier gibt es ein Menü, das aufgeklappt oder geschlossen ist. Der Zustand wird gespeichert und zugewiesen. Beispiel
Zum Vergleich gibt es hier noch ein paar einfachere Beispiele ohne WebStorage.
Hier geht es darum eine Hintergrundmusik automatisch abzuspielen oder nicht. Der User stellt generell eine Autoplay Funktion ein.
Beispiel 1
In diesem Beispiel wird mittels dem Standardplayer der Sound vom User gesteuert. So hat er die Möglichkeit die Lautstärke einzustellen oder den Abspielknopf zu verschieben. Auch hier wird gespeichert und beim Laden aufgerufen, ob die Musik abspielt oder nicht.
Beispiel 2
In diesem Beispiel wird auch die eingestellte Lautstärke abgespeichert.
Beispiel 3
Die Anwendung des Session Storage Objekts unterscheidet sich nicht wesentlich von der Benutzung des Local Storage Objektes. Der Unterschied ist ledliglich der, dass die Daten des Session Storage Objekts nach Beendigung der Session gelöscht werden.
if (sessionStorage.clickcount) {
sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1;
} else {
sessionStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "Sie haben den Button" +
sessionStorage.clickcount + " mal in dieser Session angeklickt.";