Jednou se zákonitě musí stát, že čas, který spotřebovává vaše webová aplikace na serveru, začne dosahovat nepříjemných čísel. A shodou okolností se zrovna na tomhle webu začnou houfně objevovat návštěvníci. Zátěž serveru se zvětšuje, barva pleti vašeho hostera se mění ze spokojené růžové na temně fialovou a vám nezbývá než se pustit do optimalizace. Jak tedy ulevit serveru, těžce zkoušenému přívalem návštěvníků? Ano, je tady cache. Tentokrát se nejedná se o onu známou a nezkušenými webmajstry proklínanou prohlížečovou kešku, ale o server-side kešování systémově náročných segmentů stránky. Za vše nechť raději promluví příklad:

( time() - $expireTime ) ) {
    return file_get_contents( $cacheFile );
  }
  return false;
}
?>



      
      

Zobrazen soubor ulozeny v .

Hned v úvodu si vytvoříme dvě důležité funkce. První ulozCache() je taková jednodušší. Pouze zapíše data do souboru se zadaným označením. Druhá z klíčových funkcí ctiCache() se nejprve pokusí zjistit, zda soubor s určeným označením existuje. Pokud ano, podle stáří souboru vrátí obsah souboru. V případě že je soubor příliš starý (porovná čas vytvoření s aktuálním časem minus povolené stáří souboru), tváří se, že neexistuje.

V hlavním těle programu možná kromě jednoduché podmínky, která se vlastně stará o veškerou funkcionalitu, padnou neznalému do oka funkce ob_start, ob_get_contents a ob_clean (můžete je nahradit ob_get_clean). Jedná se o sadu funkcí, díky kterým umí náš skript zachytit a přesměrovat běžný výstup z aplikace do proměnné, odkud jej pak můžeme sami poslat na výstup nebo uložit do souboru.

Kešování v těle skriptu funguje nejprve tak, že se pokusí získat obsah souboru označený nálepkou ‘narocnyBlok’. Pokud soubor existuje, uložíme si jej do proměnné. V opačném případě spustíme output buffering (ob_start), provedeme onen systémově náročný skript v podmínce a výsledek si uložíme do souboru pro pozdější použití.

V obou případech máme na konci bloku v proměnné “cachedText” obsah, který můžeme poslat na výstup.

Komentáře

Váš komentář: