Preprost HTML cache s pomočjo PHP
Medtem ko brskam po spletu in iščem idealne rešitve za izboljšanje časa odpiranja prve strani, lahko na kup dam ugotovitve in en tak splošen seznam postopkov, ki jih priporočajo, za pohitritev spletne strani. Seznam se začne iz hitrim strežnikom, kar je smešno ampak realno. Na drugem mestu je razumevanje fotmata slik, ki ob velikem številu slik, lahko pomeni pohitritev. Uporaba GIFa, je priporočena zgolj pri slikah, ki ne vsebujejo veliko barv, kot so lahko logo, gumbi, itd. JPG format se priporoča takrat, ko gre za slike z več barvami, kar velja skoraj za vse tako imenovane prave slike, vendar je priporočeno znižati kvaliteto JPG slik. Potem pa je tukaj še PNG, ki ponuja kvaliteto, transparentnost, vendar se soočaš z omejitvami pri brskalnikih.
Brskalnik hitreje nalaga XHTML zato ni priporočljiva uporaba tabel. Potem priporočajo kompresiranje in čiščenje CSSa, saj določeni generatorji oz. programi za urejanje, generirajo večje CSS datoteke in uporabljajo nepotrebne nastavitve, posredi pa pridemo še mi, ko dupliciramo določene nastavitve, tako že preprost CSS lahko zmanjšamo za vsaj 5-7%. Uporabimo lahko css kopresatorje, itd. Link, link. Prav tako priporočajo uporabo stisnjenih javascript datotek, ki jih danes ponujajo že skoraj vsi javascirpt frameworki, sicer lahko uporabite kakšnega od javascript kompresorjev. Počasi se bližamo HTML cachu, ki je lahko zelo preprost, ali pa ga lahko zakompliciramo na vse viže. Spodaj je primer Dave Childa, ki je spisal ta preprost HTML cache, ki pa opravlja preprosto delo. Ob obisku strani preveri, če obstaja html datoteka oz. prepis html datoteke, preveri čas, ki ga nastavimo in v primeru, da datoteka obstaja in je v dovoljenem časovnem obdobju, izpiše html, sicer nadaljuje z izvajanjem phpja, shrani nov prepis datoteke in tako ob naslednjem obisku že prikazuje prepis. Izpis direktnega HTMLja brez izvajanja PHPja je hitrejši za vse query poizvedovanja v bazo, itd. Torej kako stvar zgleda:
Include classa nekje na vrhu strani, pred izvajanjem druge PHP kode:
// Settings
$cachedir = 'cache/files/'; // Directory to cache files in (keep outside web root)
$cachetime = 600; // Seconds to cache files for
$cacheext = 'cache'; // Extension to give cached files (usually cache, htm, txt)
// Ignore List
$ignore_list = array('http://www.domena.net/stran.php','http://www.domena.net/stran2.php', 'http://www.domena.net/stran3.php', 'http://www.domena.net/stran4.php');
// Script
$page = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // Requested page
$cachefile = $cachedir . md5($page) . '.' . $cacheext; // Cache file to either load or create
$ignore_page = false;
for ($i = 0; $i < count($ignore_list); $i++) {
$ignore_page = (strpos($page, $ignore_list[$i]) !== false) ? true : $ignore_page;
}
$cachefile_created = ((@file_exists($cachefile)) and ($ignore_page === false)) ? @filemtime($cachefile) : 0;
@clearstatcache();
// Show file from cache if still valid
if (time() - $cachetime < $cachefile_created) {
//ob_start('ob_gzhandler');
@readfile($cachefile);
//ob_end_flush();
exit();
}
// If we're still here, we need to generate a cache file
ob_start();
Stvar zaključimo še z includom classa na dnu strani:
// Now the script has run, generate a new cache file $fp = @fopen($cachefile, 'w'); // save the contents of output buffer to the file @fwrite($fp, ob_get_contents()); @fclose($fp); ob_end_flush();
Sistem deluje zelo preprosto in učinkovito. Priložena je še crontab scripta, ki pobriše ustvarjene cache datoteke na določen časovni interval, ali pa jo lahko poganjamo ročno.
// Settings
$cachedir = '../cache/'; // Directory to cache files in (keep outside web root)
if ($handle = @opendir($cachedir)) {
while (false !== ($file = @readdir($handle))) {
if ($file != '.' and $file != '..') {
echo $file . ' deleted.<br>';
@unlink($cachedir . '/' . $file);
}
}
@closedir($handle);
}
Še ni komentarjev.
Komentiraj ...

Anketa
Koornk Widget
-Dodan en temp page, da se malo poveča ranking domene ... ponudi.n.. ...
-Na vidiku še en blog feeder oz. directory.
-Prokleti antivirusni programi! I hate them!
-Čekiram, kaj je za popravit! :D zpm-idri.. definitivno!
Tagi
WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.


