7. Persistenz, Autorisierung, Cookies
7.1 localStorage und sessionStorage
Wenn eine Html-Seite geladen wird, wird auch der in
<script>
-Tags enthaltene Javascript-Code ausgeführt. Dieser
startet im Prinzip immer von einem Anfangszustand. Wenn Sie also eine Variable
haben, die dann später initialisiert wird, so wird die beim Neuladen der
Seite wieder auf undefined
zurückgesetzt. Wenn Sie wollen,
dass gewisse Werte (User-Einstellungen etc.) es "überleben", wenn die
Seite neugeladen wird, der Browser oder der Rechner neugestartet wird, dann
helfen Ihnen sessionStorage
und localStorage
.
Laden Sie sich hier meinen Server für interaktives Zeichnen runter: server.js und index.html.
Die Anwendung hat sich das Bild gemerkt, also die Menge aller graphischen Objekte (inklusive
deren Farbe etc.). Dies ist nicht erstaunlich, denn schließlich sind die alle
serverseitig gespeichert. Die Nutzer-Präferenzen wie fill color
oder
circle radius
sind jedoch rein browser-seitig und werden, wenn man das Tab
schließt und wieder öffnet (oder einfach die Seite neulädt), wieder auf ihre default-Werte
zurückgesetzt. Das wollen wir nicht unbedingt. Manche Dinge sollen
persistent sein.
localStorage
oder Cookies erreichen können.
Wir wollen jetzt der obigen Anwendung persistentes Verhalten geben. So soll sie sich zum
Beispiel
"merken", was meine zuletzt ausgesuchten Farben waren, die Größe der Kreise, ob Kreise oder
Quadrate etc. Diese Information soll ein Schließen des Tabs oder des Browsers
überleben. Hierzu gibt es im Browser-Javascript die globale Variable
localStorage
, die sich wie ein normales Javascript-Dictionary verhält. Sie
können also mit
localStorage.mein_spitzname = 'DOM1N1K 5CH3D3R';beliebige Variablen definieren.
- Gehen Sie auf web1.hszg.de und öffnen Sie die Javascript-Konsole.
-
Tippen Sie
localStorage
und drücken ENTER, um sich den Inhalt dieser Variable anzeigen zu lassen. -
Setzen Sie eine Variable, die bisher noch nicht definiert war, beispielsweise
localStorage.username = 'xby25f';
. - Schließen Sie das Tab. Öffnen Sie ein neues, gehen wieder auf
web1.hszg.de und schauen, ob die von Ihnen gesetzte
Variable
localStorage.username
überlebt hat. - Was geschieht, wenn Sie den Browser beenden und neu starten? Was geschieht, wenn Sie web1.hszg.de in einem anderen Browser öffnen?
localStorage
.
localStorage
gibt es noch sessionStorage
. Finden Sie heraus,
wie sich diese zwei Dictionaries unterscheiden.