Moduł Cache pozwala na buforowanie i przechowywanie dowolnych danych, które są widoczne w obrębie całej instancji jPALIO. W przeciwieństwie do informacji przechowywanych np.: w zmiennych globalnych, dane umieszczone w module Cache nie są usuwane po zakończeniu przetwarzania strony.
Dostępne są następujące typy buforów:
Moduł ten najczęściej jest wykorzystywany do przechowywania wyników zapytań SQL, które są często używane w systemie (np.: dane słownikowe potrzebne do generowania list w formularzach) lub ich wykonanie jest bardzo obciążające dla systemu (np.: wygenerowanie raportów w nocy, kiedy system jest mniej obciążony, tak aby były dostępne później).
Przykład 1: Wyobraźmy sobie, że naszym zadaniem jest stworzenie prostej funkcjonalność blokowania użytkowników, którzy trzykrotnie podali nieprawidłowe hasło. Do tego zadania świetnie nadaje się moduł Cache, którego obsługę można zamknąć w trzech obiektach:
Obiekt: users.blacklist.Add
$#params(String userId)${
@cacheName = "users.blacklist";
ifNot(cache.isCacheCreated(@cacheName), {
cache.createSimpleCache(@cacheName);
});
cache.put(@cacheName, @userId, @userId);
}
Obiekt: users.blacklist.IsBlocked
$#params(String userId)${
@cacheName = "users.blacklist";
if(cache.isCacheCreated(@cacheName), {
return(cache.containsKey(@cacheName, @userId));
}, {
return(false);
});
}
Obiekt: users.blacklist.Clear (zadanie uruchamiane np.: w nocy)
$cache.deleteCache("users.blacklist")
Dokumentacja funkcji modułu Cache dostępna jest pod adresem http://jpalio.torn.com.pl/modules/palio/modules/Cache.html.