Jei svetainė tampa labiau lankoma, o naudojama TVS nėra gerai optimizuota, ji vis labiau apkrauna serverio procesorių (CPU). Elementarus būdas dramatiškai sumažinti apkrovą – kiek įmanoma daugiau viską kešuoti (įrašyti į laikiną tekstinį failą – cache), ypač daug Mysql užklausų generuojančias TVS vietas (pvz., kiekviename puslapyje įterpiamus topus, naujausių straipsnių/nuorodų sąrašus ir pan.).
Kešavimo esmė – nustatytą laiką naudoti išsaugotą puslapio ar jo dalies kopiją. Praėjus tam laikui, kopija atnaujinama.
Kešavimui naudojamos PHP funkcijos ob_start, ob_get_contents, ob_end_flush.
Pavyzdys:
$cache_failas = “cache/failas.txt”;
$cache_laikas = 3600;
if (file_exists($cache_failas) && (time() – $cache_laikas
< filemtime($cache_failas)))
{
include($cache_failas);
}
else {
ob_start();
//php kodas, pvz paėmimas is duomenų bazes
//irasom i cache
$f = fopen($cache_failas, ‘wb’);
fwrite($f, ob_get_contents());
fclose($f);
ob_end_flush();
}
$cache_failas – failas, į kurį bus įrašoma. Jį galima sukurti iš anksto (ir atitinkamai
suchmod’inti) arba, jei nebus, jis gali būti sukurtas automatiškai (žr. apie fopen)
$cache_laikas – sekundėmis. Kas kiek laiko turi būti atnaujinama. Šiuo atveju: 3600 sek = 1 valanda