Daniel Baltes Amado Entwickler

autoStorage.js

Während der letzten Arbeiten versuchte ich oftmals auf cookies zu verzichten und dachte an das neue Webstorage feature. Das ist mittlerweile in allen gängigen Browsern implementiert und bietet genügend Platz für Daten. Ein kleiner Minuspunkt ist die Tatsache, dass man nur key - value pairs hinzufügen kann und keine Objekte. Das macht es bei größeren Projekten oftmals schwierig, die Daten geordnet zu speichern.
Eine Möglichkeit besteht natürlich darin, ein Objekt zu serialisieren um eine String Darstellung zu bekommen - bei diesem Gedanken bietet sich die JSON-Notation an. Ich kann meine gesamten Daten unter einem Key speichern und daraus wieder ein Objekt parsen, das alles strukturiert aufbewahrt.

Zu diesem Zweck habe ich ein jQuery Plugin gebastelt. Beim Submit werden alle Daten des selektierten Formulars gespeichert und beim nächsten Aufruf wieder eingefügt. Die Funktion lässt sich auf beliebig viele Formulare innerhalb einer Domain verwenden, solange diese unterschiedliche Namen haben. Um bestimmte Felder von der Prozedur auszuschließen, gibt es den Parameter exclude. Dieser erwartet ein Array von Feldnamen. Ferner lässt sich auch die Art der Speicherung wählen (localStorage oder sessionStorage) und ob ein submit das Formular auch wirklich senden soll. Letzteres ist wohl nur für ajax-requests interessant oder falls noch weitere Routinen auf dem Submit-Event liegen wie Validierung.



Ein Beispiel:
$('form').autoStorage( {
    'submit' : true,
    'storageType' : 'local',
    'exclude' : ['textfield1', 'textfield2']
});


GitHub: https://github.com/phunkei/autoStorage

Tags

3 Kommentare

دانلود فیلتر شکن

tnx a lot

Moritz

Interessanter Artikel, sicherlich hilfreiches Plugin. Aber sag mal, du hast Probleme mit Spam hier in deinem Blog. Oder...?

Siegi

ganz schön viel Spam comments hier. ;-)

Ich mag kein jQuery, bzw. kein Dateimonster wie jQuery von ca. 90 kb auf jeder kleinen Webseite mitschleppen, wenn man ansonsten garkein jQuery auf der Seite braucht oder nur eine einzige kleine JS Funktion benötigt.
Javascript ist ja nunmal bereits im Browser integriert, wie würde also diese Funktion in Javascript aussehen ??