Peter: localStorage Sicherungskopie

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.

  1. 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

    1. 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]; }  
      
      

      :-)