Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Cachowanie danych
Forum PHP.pl > Forum > PHP
kiler129
Witajcie!
Natrafiłem na kolejny mini-problem - mechanizm cachowania. Staram się wymyśleć jakoś logikę tego zagadnienia ale nie za bardzo mi to wychodzi.
Najlepsze co udało mi się wymyślić to działanie w ten sposób, że gdy dodaję np. newsa nic się nie dzieje. Gdy użytkownik wejdzie na link tego newsa skrypt sprawdza czy istnieje plik [DOCROOT]/caches/news/$id/main.html.
Jeśli istnieje - zwraca go. Gdy natomiast nie, generuje zawartość wrzucając do cache w postaci owego pliku.
Gdy edytowana jest zawartość cache danego elementu jest czyszczone (co jest w miarę logiczne winksmiley.jpg).
Ominę wtedy problem wydajności przy większej oglądalności który powstał przy pisaniu systemu szablonów (jest dość rozbudowany toteż nie do końca tak wydajny jakbym chciał).

Czy taki pomysł na cache jest dobry?
Ktoś zapyta dlaczego tworzę katalog o $id i w nim main.html zamiast samego html z id - prosty powód - jeśli dany szablon wywołuje ajaxem zawartości głupio by było jej też nie cachować.
marcio
Cache czysc przy delete,edit,add wtedy zawsze bedziesz mial swiezy cache!
A co do logiki dzialania, tak jak piszesz jest okej, nie zapominaj tez ze moze kompilowanie szablonow by bylo wydajniejsze...?
kiler129
Cytat(marcio @ 29.09.2010, 11:04:42 ) *
Cache czysc przy delete,edit,add wtedy zawsze bedziesz mial swiezy cache!
A co do logiki dzialania, tak jak piszesz jest okej, nie zapominaj tez ze moze kompilowanie szablonow by bylo wydajniejsze...?

Nie chce czyścić całego - cache ma też spełniać funkcję fail-safe. Serwery które mam udostępnione niestety dość często miewają uszkodzoną trasę do MySQLa. W wypadku cachowania każdej strony po wejściu na główną user czy co gorsza google nie dostaje surowego napisu "Błąd połączenia z bazą danych" tylko dostaje normalną stronę z dopiskiem ew. "Uwaga! Z powodu niedostępności bazy danych powyższy dokument pochodzi z kopii zapasowej z dnia dd.mm.yyyy hh:ii i może nie być już nieaktualny."
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.