Information Technology Reference
In-Depth Information
function getAllItems() {
var i_array = [];
for (var i=0;i<localStorage.length;i++) {
var item = JSON.parse(
localStorage.getItem(localStorage.key(i))
);
i_array.push(item);
}
i_array.sort(function(a, b) {
return b.ts - a.ts
});
return i_array;
}
Der Aufruf
localStorage.getItem()
holt ein Element aus dem persistenten
Speicher, das anschließend mit der Funktion
JSON.parse
in ein JavaScript-
Objekt umgewandelt wird. Voraussetzung dafür ist, dass das Objekt beim Ab-
speichern mit
JSON.stringify
in eine Zeichenkette umgewandelt wurde (siehe
weiter unten). Die Objekte werden mit
i_array.push()
an das Ende des Arrays
i_array
gehängt und im nächsten Schritt nach dem Datum sortiert. Um der
JavaScript-Funktion
sort
mitzuteilen, nach welchen Kriterien sortiert werden
soll, wird sie mit einer anonymen Funktion erweitert. Um eine zeitliche Sortie-
rung der Objekte zu ermöglichen, wird die Variable
ts
aus den Objekten ausge-
wertet. Sie enthält die Zahl der Millisekunden seit dem 1.1.1970, ein Wert, der
durch die JavaScript-Funktion
new Date().getTime()
erzeugt wird. Liefert die
anonyme Funktion einen negativen Wert zurück, so wird
a
hinter
b
angereiht,
und bei einem positiven Wert kommt
a
vor
b
.
Jetzt bleibt noch die Frage zu klären, wie neue Einträge erzeugt und gespei-
chert werden. Die Funktion
saveItem()
übernimmt diesen Teil und beginnt mit
der Initialisierung einer lokalen Variable
d
, der die Struktur
diaryItem
zugewie-
sen wird.
function saveItem() {
var d = diaryItem;
d.msg = $('note').value;
if (d.msg == '') {
alert("Empty message");
return;
}
d.ts = new Date().getTime();
d.id = "geonotes_"+d.ts;
if (navigator.geolocation) {