localStorage Sicherungskopie
Peter
- javascript
Guten Tag,
ich möchte gerne vom kompletten localStorage
eine Sicherungskopie anlegen, analog zu PHP und session_encode
(einen serialisierten String erstellen). Eventuelle kleine Erschwernis:
Storage.prototype.setObject = function(key, value) {
this.setItem(key, JSON.stringify(value)); }
Storage.prototype.getObject = function(key) {
var value = this.getItem(key);
return value && JSON.parse(value); }
localStorage wird also bereits für Objekte "mißbraucht".
Ich stehe ich auf der Leitung! Aber ich komme nicht darauf, wie man elegant den gesamten localStorage "stringifiziert", ohne mit einer Schleife sämtliche Keys abzugrasen.
Hallo,
Aber ich komme nicht darauf, wie man elegant den gesamten localStorage "stringifiziert", ohne mit einer Schleife sämtliche Keys abzugrasen.
Was spricht gegen die Schleife? Das ist die einzige Möglichkeit, alle Keys zu durchlaufen.
Einfach per for-Schleife von 0 bis localStorage.length zählen. Über die key-Methode lassen sich Einträge per numerischem Index lesen:
http://stackoverflow.com/a/3138591
Mathias
Was spricht gegen die Schleife? Das ist die einzige Möglichkeit, alle Keys zu durchlaufen.
Anscheinend geht auch (Firefox 25):
// Einpacken
var tmp1 = JSON.stringify(localStorage);
// Auspacken
var tmp2 = JSON.parse(tmp1);
for (var key in tmp2) { localstorage[key] = tmp2[key]; }
:-)