Ich suche nach Javascript-Bibliotheken und Code, die localStorage
in Browsern ohne native Unterstützung simuliert werden können .
Grundsätzlich möchte ich meine Website localStorage
zum Speichern von Daten codieren und wissen, dass sie auch in Browsern funktioniert, die sie nicht nativ unterstützen. Dies würde bedeuten, dass eine Bibliothek window.localStorage
erkennt , ob sie vorhanden ist, und sie verwendet, wenn dies der Fall ist. Wenn es nicht vorhanden ist, wird eine Art Fallback-Methode für den lokalen Speicher erstellt, indem eine eigene Implementierung im window.localStorage
Namespace erstellt wird.
Bisher habe ich folgende Lösungen gefunden:
- Einfache Implementierung von sessionStorage .
- Eine Implementierung , die Cookies verwendet (von dieser Idee nicht begeistert).
- Dojos dojox.storage , aber es ist seine eigene Sache, nicht wirklich einen Rückfall.
Ich verstehe, dass Flash und Silverlight auch für den lokalen Speicher verwendet werden können, habe aber nichts darüber gefunden, sie als Fallback für Standard-HTML5 localStorage zu verwenden. Vielleicht hat Google Gears diese Funktion auch?
Bitte teilen Sie alle verwandten Bibliotheken, Ressourcen oder Codefragmente, die Sie gefunden haben! Ich würde mich besonders für reine Javascript- oder JQuery-basierte Lösungen interessieren, aber ich denke, das ist unwahrscheinlich.
quelle
Antworten:
Ich verwende PersistJS ( Github-Repository ), das den clientseitigen Speicher nahtlos und transparent für Ihren Code verwaltet. Sie verwenden eine einzelne API und erhalten Unterstützung für die folgenden Backends:
Alle diese Optionen können deaktiviert werden, wenn Sie beispielsweise keine Cookies verwenden möchten. Mit dieser Bibliothek erhalten Sie native clientseitige Speicherunterstützung in IE 5.5+, Firefox 2.0+, Safari 3.1+ und Chrome. und Plugin-unterstützte Unterstützung, wenn der Browser über Flash oder Gears verfügt. Wenn Sie Cookies aktivieren, funktioniert dies in allen Bereichen (ist jedoch auf 4 KB begrenzt).
quelle
Reine JS-basierte einfache localStorage-Polyfüllung:
Demo: http://jsfiddle.net/aamir/S4X35/
HTML:
JS:
quelle
var expires
lokal und dann Benutzer in einem anderen Bereich zu definieren ? in Funktionset
Hast du die Polyfill-Seite im Modernizr-Wiki gesehen?
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills
Suchen Sie auf dieser Seite nach dem Abschnitt "Webstorage", und Sie sehen 10 mögliche Lösungen (Stand Juli 2011).
Viel Glück! Kennzeichen
quelle
Unten finden Sie eine aufgeräumte Version der Antwort von Aamir Afridi, in der der gesamte Code im lokalen Bereich enthalten ist.
Ich habe Referenzen entfernt, die eine globale
ret
Variable erstellen , und auch das Parsen von gespeicherten "true" - und "false" -Strings in boolesche Werte innerhalb derBrowserStorage.get()
Methode entfernt, was zu Problemen führen kann, wenn versucht wird, die Strings tatsächlich "true" oder "true" zu speichern "falsch".Da die lokale Speicher-API nur Zeichenfolgenwerte unterstützt, können JavaScript-Variablendaten zusammen mit den entsprechenden Datentypen gespeichert / abgerufen werden, indem diese Daten in eine JSON-Zeichenfolge codiert werden, die dann mithilfe einer JSON-Codierungs- / Decodierungsbibliothek wie https: decodiert werden kann. //github.com/douglascrockford/JSON-js
quelle
Ich persönlich bevorzuge amplify.js . Es hat in der Vergangenheit sehr gut für mich funktioniert und ich habe es für alle lokalen Speicheranforderungen empfohlen.
quelle
store.js verwendet userData und IE sowie localStorage in anderen Browsern.
Es wird nicht versucht, etwas zu Komplexes zu tun
Keine Cookies, kein Flash, keine jQuery erforderlich.
API bereinigen.
5 kb komprimiert
https://github.com/marcuswestin/store.js
quelle
Die MDN-Seite für den DOM-Speicher enthält mehrere Problemumgehungen, bei denen Cookies verwendet werden.
quelle
Rasenstuhl scheint auch eine gute Alternative zu sein
quelle
Es gibt Realstorage , das Gears als Fallback verwendet.
quelle