Wstęp
JSCache 1.2 jest to skrypt napisany w JavaScript'cie pozwalający cachować, przechowywać dane w pamięci przeglądarki user'a. JSCache wykorzystuje mechanizm globalStorage wprowadzony w HTML 5. Dane zostaną zapamiętane nawet po zamknięciu przeglądarki, po ponownym jej uruchomieniu będą z powrotem dostępne.
W założeniu mamy do dyspozycji 5MB, choć prawdopodobnie Opera będzie ograniczać do 3MB. Jak na razie tylko Firefox 2.x obsługuje globalStorage. Z tego powodu skrypt niestety nie będzie wszechstronny.
JSCache w znaczny sposób przyspiesza czas dostępu do już wcześniej pobranych danych. Zmniejsza częstotliwość komunikacji przeglądarki z serwerem przez AJAX'a. Na pewno będzie miało to znaczenie w przypadku aplikacji webowych.
UWAGA!!! W wersji 1.2 wprowadziłem pewne zmiany i teraz działa pod Firefoxem 3.x. Jeśli wystąpią jakieś błędy, problemy, proszę pisać na maila. Nastąpiła mała zmiana odnośnie konstruktora new JSCache(), już nie podajemy domeny dla której mają być dostępne dane. Po prostu polityka prywatności została zaostrzona.
Plik JSCacheForms także został nieznacznie zmieniony, tak więc aby wszytko działało, należy dokonać aktualizacji.
Download
- JSCachePack 1.2 Zawiera: JSCache 1.2, JSCacheForms, JSON
- JSCache 1.2
- JSCacheForms (updated)
- JSCacheMem (AJAXCache 1.0)
- JSON
Jak używać?
// Definiujemy konstruktor var cache = new JSCache(); // Dodajemy dane do cache'a // parametry: ID - [String] identyfikator // dane - [String] dane do cachowania // opcje - podanie ich nie jest wymagane: // *ttl: [Int] 'time to live' - czas w sekundach po którym // obiekt zostanie usunięty // *overwrite: [true/false] przyjmuje wartości true lub false, domyślnie dopiero // po wygaśnięciu można zapisać obiekt o takim samym ID cache.save('ID' [String], 'dane' [String], [{ttl: [Int], overwrite: [true/false]}]); // Zwracanie obiektu z cache'a // przyjmuje parametr ID cache.get('ID'); // Usuwanie obiektu z cache'a // przyjmuje parapetr ID // usuwa element o podanym ID cache.remove('ID');
Przykłady
var cache = new JSCache();
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
cache.save('as', myJSONObject, {ttl: 5});
var ob = cache.get('obj1');
alert(ob.bindings[0].method);
cache.save('foo', Math.random(), {ttl: 2});
cache.save('foo', Math.random(), {overwrite: true});
cache.save('foo', Math.random(), {ttl: 5000; overwrite: true});
alert(cache.get('foo'));
cache.save('boo', Math.random());
cache.remove('foo');
alert(cache.get('foo'));
alert(cache.get('foo')+cache.get('boo'));
Licencja
/*
* JSCache 1.2
*
* (c) 2007-2009 Jarek Kostrz
* e-mail:
* www: http://jscache.ajaxin.pl
* http://ajaxin.pl
* http://creativecommons.org/licenses/by/2.5/pl/
* W przypadku użycia komercyjnego proszę o informację o tym fakcie.
*/

