Autor Zpráva
PecanCZ
Profil
Zdravím, mohl by mi prosím někdo poradit jak nejlépe cachovat web aby neměl takové nároky na jeho samotný chod? Díky za pomoc
Darkry
Profil
Záleží co chceš cachovat :-). Nejlepší je si změřit co zabírá nejvíce času, například pokud nějak složitěji procházíš složky a soubory tak je dobré cachovat výsledek nebo pokud například něco kompiluješ (šablony, ...).

Pokud nevíš jak cachovat tak se není tak složité napsat si jendoduchou třídu na cachování sám a nebo použít už nějakou existující.
PecanCZ
Profil
cachovat potřebuju php scripty, díky jejich paralelnímu načítá se web hodně zpomaluje...zkoušel jsem to takto:

<?php
define ('CACHEDIR','cache/');
 
   function ulozCache ( $content ,  $cacheName ) {
  $fp = fopen(CACHEDIR. urlencode($cacheName).'.dat' , 'w' );
  fwrite( $fp , $content );
  fclose( $fp);
}
 
   function ctiCache ( $cacheName ,  $expireTime ) {
  $cacheFile= CACHEDIR.urlencode($cacheName).'.dat';  
  if ( file_exists ($cacheFile ) && filemtime ( $cacheFile ) >( time() - $expireTime ) ) {
    return file_get_contents( $cacheFile );
  }
  return false;
}
?>
 
   <html>
<?php
if ( !$cachedText = ctiCache( ''.md5($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']).'' , 600 )) {
      ob_start();
      // kešovaná oblast
      ?>
     
         samotná stránka
     
         <?php
      //konec kešované oblasti
      $cachedText = ob_get_contents();
      ob_clean();
      ulozCache( $cachedText , ''.md5($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']).'' );
}
echo $cachedText;
unset ($cachedText);
?>
</body>
</html>

ale ta stránka se aktualizuje i několikrát za hodinu (články, novinky), takže se tam ty nové články neukazovaly
Kcko
Profil
Tak tu keš budeš muset při založení / aktualizaci článku či novinky smazat ...
vospunt
Profil
hele pokud ti tohle vadí že to trvá dlouho zkus třídu SMARTY
http://smarty.ronnieweb.net/index.php
pak se dá jednoduše i pozměnit vzhled ("je to záležitost nakodování")

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0