Szukam bibliotek javascript i kodu, który może symulować localStorage
w przeglądarkach, które nie mają natywnej obsługi.
Zasadniczo chciałbym zakodować moją witrynę za pomocą localStorage
do przechowywania danych i wiedzieć, że będzie ona nadal działać w przeglądarkach, które jej natywnie nie obsługują. Oznaczałoby to, że biblioteka wykryłaby, czy window.localStorage
istnieje, i użyłaby jej, jeśli tak. Jeśli tak nie jest, stworzyłoby jakąś metodę rezerwową pamięci lokalnej, tworząc własną implementację w window.localStorage
przestrzeni nazw.
Do tej pory znalazłem takie rozwiązania:
- Prosta implementacja sessionStorage .
- Implementacja korzystająca z plików cookie (niezadowolona z tego pomysłu).
- Dojox.storage w Dojo , ale to jest własna rzecz, a nie rozwiązanie awaryjne.
Rozumiem, że Flash i Silverlight mogą być również używane do przechowywania lokalnego, ale nie znalazłem nic na temat używania ich jako rezerwy dla standardowego localStorage HTML5. Być może Google Gears również ma taką możliwość?
Udostępnij wszystkie powiązane biblioteki, zasoby lub fragmenty kodu, które znalazłeś! Byłbym szczególnie zainteresowany rozwiązaniami opartymi na czystym javascript lub jquery, ale zgaduję, że jest to mało prawdopodobne.
źródło
Odpowiedzi:
Używam PersistJS ( repozytorium github ), które bezproblemowo i przejrzyście obsługuje przechowywanie po stronie klienta dla twojego kodu. Używasz jednego interfejsu API i otrzymujesz wsparcie dla następujących backendów:
Każde z nich można wyłączyć - jeśli na przykład nie chcesz używać plików cookie. Dzięki tej bibliotece otrzymasz natywną obsługę pamięci masowej po stronie klienta w przeglądarkach IE 5.5+, Firefox 2.0+, Safari 3.1+ i Chrome; i wsparcie wspomagane przez wtyczki, jeśli przeglądarka ma Flash lub Gears. Jeśli włączysz obsługę plików cookie, będzie działać we wszystkim (ale będzie ograniczony do 4 kB).
źródło
Prosty wypełniacz localStorage oparty na czystym JS:
Demo: http://jsfiddle.net/aamir/S4X35/
HTML:
JS:
źródło
var expires
lokalnie, a następnie użytkownika w innym zakresie? in functionset
czy widzieliście stronę polyfill na wiki Modernizr?
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills
poszukaj sekcji magazynu internetowego na tej stronie, a zobaczysz 10 potencjalnych rozwiązań (stan na lipiec 2011).
powodzenia! znak
źródło
Poniżej znajduje się uporządkowana wersja odpowiedzi Aamira Afridiego, w której cały kod jest zamknięty w lokalnym zakresie.
Usunąłem odniesienia, które tworzą
ret
zmienną globalną , a także usunąłem parsowanie przechowywanych ciągów „prawda” i „fałsz” na wartości logiczne w ramachBrowserStorage.get()
metody, co może powodować problemy, jeśli ktoś próbuje w rzeczywistości przechowywać ciągi „prawda” lub "fałszywe".Ponieważ lokalny interfejs API pamięci obsługuje tylko wartości ciągów, nadal można przechowywać / pobierać dane zmiennych JavaScript wraz z ich odpowiednimi typami danych, kodując te dane w ciąg JSON, który można następnie dekodować za pomocą biblioteki kodowania / dekodowania JSON, takiej jak https: //github.com/douglascrockford/JSON-js
źródło
Osobiście wolę amplify.js . W przeszłości działał bardzo dobrze i poleciłem go do wszystkich lokalnych potrzeb przechowywania.
źródło
store.js używa danych userData i IE oraz localStorage w innych przeglądarkach.
Nie próbuje robić niczego zbyt skomplikowanego
Bez plików cookie, bez pamięci flash, bez jQuery.
Czysty interfejs API.
Skompresowane 5 kb
https://github.com/marcuswestin/store.js
źródło
Strona MDN dotycząca magazynu DOM zawiera kilka obejść, które wykorzystują pliki cookie.
źródło
Krzesło również wydaje się dobrą alternatywą
źródło
Istnieje realstorage , który używa wtyczki Gears jako rozwiązania zastępczego.
źródło