Witam.
Piszac oskryptowanie swoich stron korzystam z php+MySQL+EZ_SQL+SMARTY.
Chicalbym jednak teraz dorobic generowanie statycznych stron - aby zmniejszyc obciazenia serwera, i tym samym porawic szybkosc dzialania stron.

Szukam walsnie jakiegos artykuly na temat bardzo efektywnego gerneowania statycznych strony.

Choi mi o golnie o to zeby w szybki sposob sprawdzic na postawie:
4 zmiennych czy taka stronka jest wygnerowana w katalogu CACHE oraz do kiedy jest wazna (tzn dolaczyc do generowanych statycznych storn mozliwsoc definowania czasu CACHOWANIA) - i tak jak stronka jest w CACHU to ja wysietlamy, w przeciwnym wypadku wykonujemy kod strony odpowiedzilany za pobranie danych z bazy i wyswietlenie stronki przez szablon SMARTY, i wtedy zapisujemy wygerneowana storne jako stronke statyczna.

Ma ktos pomysl jak takie cos szybko zreazliwac - bo cos nei abrdzo jestem przekonany do mechnizmu cachowania ze SMARTY-ch. ?

PS. Jesli chodzi o elementy dynamiczne to tym sie teraz nie martwie bo w takiej sytauacji uzywam AJAXA (formularze, wyswietlanie losowych reklam itp).

Cytat
Witam.
Znalalem taki kodzik do Cachowania stron.
Bardzo rposze co myslicie o nim - a dokladnie o jego wydajnosci.
Bo potrzeba mi naprawde szybkiego skryptu do generowania statycznych stron i ich odczytu.



  1. <?php
  2. $cachedir = 'static/'; // Directory to cache files in (keep outside web root)
  3. $cachetime = 600; // Seconds to cache files for
  4. $cacheext = 'cache'; // Extension to give cached files (usually cache, htm, txt)
  5.  
  6. // Lista stron ktorych nie Cachujemy
  7. $ignore_list = array(
  8.  'domena.net/?m=search'
  9.  );
  10.  
  11. $page = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // Requested page
  12. $cachefile = $cachedir . md5($page) . '.' . $cacheext; // Cache file to either load or create
  13. $ignore_page = false;
  14. for ($i = 0; $i < count($ignore_list); $i++) {
  15. $ignore_page = (strpos($page, $ignore_list[$i]) !== false) ? true : $ignore_page;
  16. }
  17. $cachefile_created = ((@file_exists($cachefile)) and ($ignore_page === false)) ? @filemtime($cachefile) : 0;
  18.  
  19. // Pokazujemy strone z CACHU
  20. if (time() - $cachetime < $cachefile_created) {
  21. //ob_start('ob_gzhandler');
  22. @readfile($cachefile);
  23. //ob_end_flush();
  24. exit();
  25. } else {
  26.  
  27. ###################
  28. //kod strony
  29. ###################
  30.  
  31. // Zapisujemy strone do Cachu
  32. $fp = @fopen($cachefile, 'w');
  33. // save the contents of output buffer to the file
  34. @fclose($fp);
  35. }
  36. ?>


Bardzo prosze o sugestie - aby zrobic naprawde wydajne cachowanie.