Está en la página 1de 4

Cache de pginas con PHP

Para muchos sitios Web que utilizan la potencia de PHP, MySQL o alguna otra base de datos, siempre que carga una pgina realizan consultas a la DB y su debido procesamiento con el lenguaje de programacin, en este caso PHP. Para las pginas con poco cambio de contenidos como blogs por ejemplo, difcilmente editaramos un Post cada rato, seria de gran utilidad y rendimiento ponerle cache. Ejemplo de peticin

Este grafico nos muestra como se realiza todo el proceso para mostrar el contenido al usuario que esta realizando una peticin mediante Internet:

Primero se conecta a la base de datos. Luego procesa las noticias para mostrarlas Finalmente lee una plantilla para reemplazar variables y mostrar las noticia.

Para optimizar la rapidez de respuesta del servidor al usuario, se arma el cache con la ultima consulta que realizo el usuario, de este modo se obviaran los pasos que mencionamos anteriormente. Este grafico muestra el proceso que se realizara si la pgina tuviera u archivo cache.

Este script realiza esta funcin de guardar en cache toda la respuesta en html, para esto se debi crear una carpeta cache/ con permisos de escritura, donde se almacenaran los archivos.
view plaincopy to clipboardprint

1. 4.
5

i // b el s de n u a i f l c f i da e r . . / p c tu H P y / o T H A n d M P q e i u s g i o . $ " = ; c f = ' , $ ( ); o w p ' e n f $ o , f b p f $ ); c f l p o s e ( d n e _ 0 b e h c a c f w L

2 o b 3

6. 7. 8. 9.
1 o

// iniciar el buffer de salida ob_start(); //Aqui pones tu codigo HTML y PHP $cachefile = "cache/home.html"; $fp = fopen($cachefile, 'w'); fwrite($fp, ob_get_contents()); fclose($fp); ob_end_flush();
Esta funcin nos guardara el archivo, ahora debemos tener un script que compruebe que existe cache para evitar la interaccin con la DB.
view plaincopy to clipboardprint

1.
2

$cachefi " = ; le f if $ ( { )) c i i ) $ ( n c l u d e e ; x i

c .

3. 4. 5.
6. }

; t

$cachefile = "cache/home.html"; if (file_exists($cachefile)) { include($cachefile);

exit; }
Agregar un tiempo de expiracin para las pginas cache. No es recomendable dejar una pagina con cache de por vida, para esto tenemos que darle un tiempo determinado y que renueve su informacin con datos ms actuales.
view plaincopy to clipboardprint

1.
2

$cacheti 6 * 5 = 0 ; me . f if $ ( & ) & c i ) ( f < $ t i m i ) $ ( ; n c l e F c g d . ' f , $ ( ) -> " ; c r a ) < H h o ! c : n" o h i ' e ; x i t c m i a e c l

3. 4.
5. {

6. 7. 8.

9. }

$cachetime = 5 * 60; if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) { include($cachefile); echo "n"; exit; }
Esta seria la forma en que podra quedar el proceso para armar y consultar una pagina cache.
view plaincopy to clipboardprint

1. 2.
3

$cachefi = $ " . ; r c . a h c t m l le $ 6 * = m 5 // 0 i c n ; u t e s . f if ( && ) $ c i ) $ ( f < ) i ) $ ( n ; c l u d e e C d . ' H Y F f , $ ( ) > " ; c < a : ! h i ' e ; x i 0 1 2 / Y u P s a H h . o H n T e . c u P d M r . r L e /. 4 $ ( f = ' , ) w c ' fp 6 f $ o , w b r i f t e (p f $ ); c l o f s e (p 9 b ; s . S . ao j ) n t c i a ) ( e m i t

4. 5.
6. {

7. 8. 9.

1 } 1 o b 1 1 1

13. 15. 17. 18.


1 o

$cachefile = "cache/".$reqfilename.".html"; $cachetime = 5 * 60; // 5 minutes if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) { include($cachefile);

} ob_start();

echo "n"; exit;

//.. Your usual PHP script and HTML here ... $fp = fopen($cachefile, 'w'); fwrite($fp, ob_get_contents()); fclose($fp); ob_end_flush();
Original de: The UK Web Design Company

También podría gustarte