Caching pentru continut static

In WebPagetest, vizualizarea pentru repetarile efectuate ar fi normal sa dureze mult mai putin pentru ca, in mod normal, testul ar trebui sa profite de cachingul din browser. Mare parte din continutul unui site web este static si se schimba rareori – fisierele HTML statice , fisierele JavaScript si CSS si imaginile. In general, broswerul le va stoca in cache-ul sau si, cand sunt cerute din nou, va determina daca sunt recente sau expirate, bazandu-se pe data oferita din parametrul Last Modified al fisierului. Daca sunt expirate, browserul va cere serverului web sa valideze fisierul – sa confirme daca exista sau nu o versiune mai noua a fisierului.

Aceasta validare necesita comunicare suplimentara si o intarziere inerenta intre browser si server chiar daca serverul raspunde cu “da” poti folosi versiunea din “cache”. Aceasta situatie poate fi evitata daca, la transmiterea continutului static, este adaugat headerul Expires sau valoarea max-page pentru headerul Cache-Control – care recomanda browserului sa o pastreze in mod sigur fisierul in cache pentru o ora, o zi, o saptamana sau atata timp cat dorigi – fara a pune intrebari. Adaugarea sectiunii de mai jos la fisierul de configurare al Apache sau intr-un fisier .htaccess va face acest lucru – ii va spune browserului sa pastreze fisierele care se termina in html/xml/css/etc pentru sapte zile, adica 604.800 de secunde.

<FilesMatch “\.(html|css|js|gif|png|jpg|jpeg)$”>

Header set cache-control “max-age=604800”

</FilesMatch>

Alternativ puteti transmite headerul Expires folosind directive mai prietenoase cu cititorul lor. Acest exemplu include o verificare pentru a ne asigura dinainte ca Apache are instalat modulul necesar, pentru a-l impiedica sa afiseze mesajul Internal Server Error daca nu este disponibil:

<IfModule mod_expires.c>

ExpiresActive On

ExpiresByType text/css “acces plus 1 week”

</IfModule>

Singurul dezavantaj este, daca fisierul se va schimba intre timp, va trebui sa-l redenumiti pentru a va asigura ca noua versiune este vazuta de toata lumea.

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>