Information Technology Reference
In-Depth Information
Da sich viele Funktionen der GameLib um den korrekten Spielablauf kümmern
und nicht direkt in Zusammenhang mit Web Storage oder dem Offline-Cache
stehen, werden sie hier auch nicht detailliert beschrieben. Neugierige können
wieder einen Blick in den Quellcode der JavaScript-Bibliothek knappDran.js
werfen. Relevant für unser Offline-Kapitel ist hingegen jener JavaScript-Code,
in dem das Storage-Interface mit localStorage zum Einsatz kommt - wir finden
ihn beim Speichern eines Spiels.
// store basic data in localStorage, add hostname
// and timestamp
var ts = new Date().getTime();
var id = "knappDran_"+game.store.gid+"_"+ts;
game.store.hostname = location.hostname;
game.store.ts = ts;
localStorage.setItem(id, JSON.stringify(game.store));
Damit die Schlüssel im localStorage einmalig sind, werden sie aus der Kombi-
nation einer Präfix-Zeichenkette ( knappDran ), der Spiele-Kennung ( game.store.
gid ) und einem Zeitstempel ( ts ) zusammengesetzt. Verbunden werden die drei
Teile jeweils mit einem Unterstrich ( _ ).
Als Wert wird die game.store -Struktur mit allen Ergebnissen in Form eines
JSON -Strings gespeichert. Das folgende Listing zeigt den Wert, nachdem am
Ende des Spiels fünf von acht Fragen richtig beantwortet wurden. Der Schlüs-
sel für den folgenden Eintrag lautet knappDran_0001_1281026695083 (vergleiche
dazu auch Abbildung 8.8).
{ "gid":"0001","game":"Die Innenstadt von Paris",
"questions":8,"correct":5,"percent":63,
"hostname":"html5.komplett.cc", "ts":1281026695083
}
Der Zeitstempel ts ist eine Angabe in Millisekunden seit dem 1.1.1970. Nun, da
die Werte im localStorage gespeichert sind, kann man dem Anwender bei einem
neuerlichen Spielversuch ein entsprechendes Feedback geben.
// get collected data
var games_done = [];
var max_percent = 0;
for (var i=0;i<localStorage.length;i++) {
var key = localStorage.key(i);
if (key.substring(0, 9) == "knappDran") {
var item = JSON.parse(localStorage.getItem(key));
if (item.gid == game.store.gid) {
Search WWH ::




Custom Search