Cze¶æ.
No to akurat wiadomo od dawna, ¿e modu³y które czytaj± dane, nawet nie koniecznie losowo, spowalniaj± stronê. Zobacz ile u mnie jest modu³ów na g³ównej. A ja mam ilo¶æ jednorazowych po³±czeñ do bazy równ±
3 ( trzy ) i co ja mam napisaæ?.
Ale jest na to sposób. Nie koniecznie musi u Ciebie zadzia³aæ, ale u mnie dzia³a. Dotyczy on z pozoru banalnego jakby siê wydawa³o elementu
Joomla! jakim jest
cache. Otó¿ jak ka¿dy wie, s± tam przetrzymywane dane maj±ce przy¶pieszyæ szybko¶æ dzia³ania strony. Takie jest za³o¿enie dzia³ania
schowka. Ale ze schowkiem bywa ró¿nie, tym bardziej je¶li strona dynamicznie zmienia swoj± tre¶æ. Czyli przyk³adowo Twoje czy moje modu³y wykonuj± pracê. Wiêc nie do¶æ ¿e wykonywana jest spora ilo¶æ zapytañ do bazy
SQL w momencie otwierania strony ( tylko dla jednego usera! ) a jeszcze dodatkowo przegl±darka sczytuje dane z
cache. Na moim serwerze efekt tego by³ taki sam jak i u Ciebie. Wolne wczytywanie strony, a czasami zrywanie po³±czenia. Wiêc po prostu wy³±czy³em
cache i nie mam problemów z powolnym czytaniem strony. Wiem ¿e nie na ka¿dym serwerze to dzia³a.
Mo¿na w inny sposób zaradziæ temu. Ale od strony przegl±darki i serwera proxy. Blokowanie
cache'owania strony przez przegl±darkê jest proste. Wykonuje siê to przy pomocy tzw. ekwiwalentów
HTTP czyli odpowiednich nag³ówków
META w pliku
index.php templatki ( mata tagów ). Te nag³ówki nale¿y umie¶ciæ w sekcji
<HEAD> kodu
index.php. Oto przyk³ad:
Kod: |
<meta name="Pragma" content="no-cache" />
<meta name="Cache-Control" content="no-store, no-cache, must-revalidate" />
|
Istnienie dwóch ró¿nych nag³ówków spowodowane jest ró¿nic± miêdzy protoko³em
HTTP/1.0 a
HTTP/1.1. Pierwszy nag³ówek odnosi siê do
HTTP/1.0, a drugi do
HTTP/1.1.
Du¿o skuteczniejszym sposobem, jest wys³anie odpowiednich nag³ówków
HTTP do przegl±darki/serwera proxy. Mo¿na to wykonaæ tylko przy pomocy
PHP po stronie serwera. Wygl±da to tak:
Kod: |
<?php
header("Cache-Control: no-store, no-cache, must-revalidate"«»); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"«»); // HTTP/1.0
?>
|
Przy korzystaniu z tego sposobu przegl±darka otrzyma od serwera polecenie niezachowywania lokalnej kopii, a serwer proxy przepu¶ci t± stronê do u¿ytkownika bez jej
cache'owania.
Jak pisa³em wcze¶niej, ten sposób nie zawsze jest skuteczny, i mo¿e czasami zadzia³aæ odwrotnie, czyli zwiêkszyæ transfer z naszej strony, przez co mo¿emy przekroczyæ limity tego transferu.
To mo¿e tyle mego wym±drzania siê
. Mo¿e to komu¶ siê przydaæ, lub nie przydaæ.
True lub
False. Trudno
. A teraz idê spaæ, bo ju¿ pó¼no, a zdrówko mi siada, wiêc muszê trochê odetchn±æ od kompa. Przepraszam za pó¼n± reakcjê, ale obecnie mam trochê innych zajêæ, wiêc czêsto umykaj± mi posty. Postaram siê nastêpnym razem szybciej reagowaæ. Pozdrawiam.
Jokris.