El hecho de que las casi todas las páginas web actuales sean dinámicas es sin dudas una gran logro en la tecnología web. No siempre fue así y todavía existen las páginas estáticas las cuales solo contienen un simple código HTML que descarga de forma directa y es mostrado en nuestro navegador.
Si bien el uso de lenguajes que se ejecutan en los servidores web y las bases de datos, han posibilitado el dinamismo que hoy en día existen en internet; también es válido destacar la ventaja que tiene una página estática y su rapidez. Una página estática no necesita ejecutar ningún código del lado del servidor, no necesita hacer consultas a una base de datos , muchas veces de extremada complejidad. Es por eso que se han desarrollado mecanismo para simular en páginas dinámicas, la velocidad de acceso que experimenta una página estática.
El uso de CacheLa caché son datos almacenados y duplicados de los originales, estos datos originales deben ser mucho más costosos en tiempo y memoria de obtener, respecto a la copia en la caché. La idea de la cache almacenar una copia la primera vez que se accede al recurso, y a partir de ese momento los accesos que se hagan al recursos tienen una respuesta directa de la cache.
Existe una conocida controversia entre tiempo y memoria muy conocida en programación. Por lo general cuando queremos ganar en tiempo perdemos en memoria. Pero en el caso de la web el espacio es irrelevante, casi todos los servidores host profesionales tiene capacidad suficiente para hacer uso de mecanismo de cache.
¿Cuándo usar mecanismo de cache?Se debe pensare en usar mecanismo de cache cuando tenemos un recurso que hace un intensivo uso de consultas a bases de datos , cálculos intensivos y además de todo esto este recurso es muy demandado.
¿Cada cuando tiempo se debe refrescar la cache?El tiempo de vida de la cache antes de ser refrescado, depende en gran medida del recurso. Si es un recurso que rara vez tiene cambios se podría implementar el refrescamiento cada un largo periodo de tiempo o simplemente solo cuando se active una bandera o indicador por el administrador de dicho contenido.
Cache en PHPNo podemos hablar de cache en PHP sin hacer mención de extensión de PHP: APC (Alternative PHP Cache) . Esta es una de las mejores alternativas para implementar uso de cache en nuestras páginas escritas con código PHP. Sin embargo en este artículo no vamos a profundizar en APC sino que vamos a ver como implementar un sistema de Cache usando sencillas directivas PHP.
Ejemplo Cree un archivo llamado: cache_ini.php (o con el nombre que desee) con el siguiente código:
<?php
// configuración
$cache_dir = 'cache/'; // directorio de cache
$cache_time = 86400; // duración del cache
$cache_ext = 'cache'; // extensión de cache
// script a procesar
$cachepage = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$cachefile = $cachedir.md5($cachepage).'.'.$cacheext;
// calculamos el tiempo del cache
if (@file_exists($cachefile)) {
$cachelast = @filemtime($cachefile);
} else {
$cachelast = 0;
}
@clearstatcache();
// Mostramos el archivo si aun no vence
if (time() - $cachetime <$cachelast) {
@readfile($cachefile);
exit();
}
ob_start();
?>
Cree un archivo llamado: cache_fin.php (o con el nombre que desee) con el siguiente código:
<?php
// Generamos el nuevo archivo cache
$fp = @fopen($cachefile, 'w');
// guardamos el contenido del buffer
@fwrite($fp, ob_get_contents());
@fclose($fp);
ob_end_flush();
?>
Asegúrese que exista un directorio llamado cache en la raíz donde estén archivos que va aplicar la cache, y que este tenga permisos de escritura.
Suponiendo que va a cachear la página de inicio(inde.php) siguiente:
<?php
include("cache_ini.php");
// Contenido de mi pagina
include("cache_fin.php");
?>
Lo único que se debe hacer es incluir el archivo cache_ini.php, al inicio del documento, y cache_fin.php, al final del archivo.
En el archivo cache_ini.php, se puede configurar el tiempo de refrescamiento de la cache , tener en cuenta que este tiempo es por segundo, 3600 es una hora.
Con este ejemplo pueden implementar de forma sencilla cacheo en sus páginas.
Moisés Soft le recomienda investigar más sobre el cacheo en PHP y librerías existentes.
Deje su comentario ,duda o sugerencia.