«

»

Cachear página web con Php

Una forma de reducir la carga en el servidor web y de conseguir que las páginas se carguen más rápidamente es cachear la página o los fragmentos de ella que hacen un uso más intensivo de consultas a bases de datos o algún otro procesamiento que pueda demorar la creación de la misma.

Mediante este sencillo sistema de cacheo, almacenamos en un fichero de texto en el servidor la página o el fragmento de la misma que no queremos tener que generar cada vez que alguien accede a ella. De esta manera, de forma mucho más rápida, se incrustará este trozo de texto procedente del archivo sin tener que realizar más procesos.

El archivo se volverá a crear periódicamente según el tiempo de vida que se establezca. Dependiendo de lo que sea puede ser conveniente recrearlo cada hora, cada día o con cualquier otra frecuencia.

Para seguir el ejemplo, antes de nada debemos crear una carpeta en el servidor web llamada /tmp (o el nombre que se desee) y asignarle permisos de escritura, de forma que Php pueda escribir datos en ella.

$nombreArchivo = 'tmp/cache.php';
$duracion = 43200; //60*60*12 (renovar cada 12 horas)
if (file_exists($nombreArchivo) && time() - $duracion < filemtime($nombreArchivo)) {
    readfile($nombreArchivo);
        exit;
}

En esta primera parte del código indicamos en nombre del archivo donde se guardará el código cacheado y la perioricidad con la que queremos que se renueve.

Posteriormente comprobamos si el archivo existe y si está dentro del periodo de vigencia. Si es así, se envía al navegador el contenido del archivo y se interrumpe la ejecución del script. En este caso ya está todo hecho.

En caso de que el archivo no exista (la primera vez que se ejecuta el script) o que lleve generado más tiempo del que hemos establecido el código se continúa ejecutando con lo siguiente.

$fichero = fopen($nombreArchivo, 'w+');
fwrite($fichero, $contenido);
fclose($fichero);
echo $contenido;

Contando con que el contenido que queremos cachear está almacenado en la variable $contenido, en esta parte simplemente abrimos el archivo donde queremos guardar el contenido cacheado, haciéndolo con permiso de escritura, y posteriormente se escriben los datos y se cierra el archivo.

En la última línea se envía el contenido que queremos cachear al navegador, ya que además de guardarlo en el archivo también tiene que verse en la visita en la que se está produciendo el proceso de cacheo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Puedes utilizar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>