2011-06-26 10 views
19

Me gustaría presentar siempre el último contenido del sitio web para el usuario, pero también lo tengo cargado rápidamente. Al investigar encontré publicaciones que sugerían usar el caché para acelerar la carga.HTML - edad máxima de control de caché

¿Qué necesito agregar a mi sitio web para "sobrescribir" la memoria caché después de 3 días para mostrar el último contenido?

+1

¿Utiliza wordpress? drupal? ¿tienes una base de datos? el almacenamiento en caché no es tan cortante y seco como parece pensar que es ... – Trey

+0

Lo siento. Estoy usando un sitio web simple de PHP sin un CMS. – Uli

Respuesta

11

Hay más de una forma de hacerlo, pero debe considerar exactamente lo que necesita almacenar en la memoria caché y lo que no. Los mayores incrementos de velocidad probablemente vendrán de asegurarse de que sus activos (css, images, javascript) estén almacenados en caché, en lugar del propio html. Luego debe considerar varios factores (¿con qué frecuencia cambian estos activos, cómo forzará a un usuario a descargar una nueva versión del archivo si la cambia?).

A menudo, como parte de un proceso de publicación de sitios, a los archivos nuevos (archivos actualizados) se les asigna un nuevo nombre de archivo para obligarlos a volver a descargar el archivo, pero este es solo un enfoque.

Debe echar un vistazo a apache mod_expire, y la capacidad de establecer tiempos de caducidad para los activos utilizando el archivo .htaccess.

http://www.google.com/?q=apache+cache+control+htaccess#q=apache+cache+control+htaccess

+0

¿Comprendí correctamente que solo necesito agregar este código al archivo .htaccess de mi servidor para permitir el almacenamiento en caché de los archivos durante 3 días? '# 3 DÍAS Encabezado establece Cache-Control" max-age = 259200, proxy-revalidate " ' Después de eso 3 días es ' Todos serán recargados, ¿verdad? Fuente: http://www.askapache.com/htaccess/apache-speed-cache-control.html – Uli

+0

La respuesta supone que estoy usando Apache como servidor, ¿qué pasa si estoy usando una aplicación de Ruby? ? Esto no funcionará – Joseph

+0

Aquí hay una publicación de blog con explicaciones claras sobre cómo configurar los encabezados de caché en html y su lenguaje de programación favorito http://docs.fastly.com/guides/22951283/26628787 – Joseph

0

Según el YSlow recommendations podría configurar el servidor web para agregar un encabezado o un ExpiresCache-Control HTTP a la respuesta que dará lugar a los agentes de usuario de almacenamiento en caché la respuesta durante el tiempo especificado.

1

Como se mencionó Expira y encabezados Cache-control son generalmente la mejor manera de incorporar la información sobre la vida de la información.

Dado que los clientes no son muy confiables en la interpretación de estas informaciones, los proxies con capacidades de almacenamiento en caché como calamar, barniz o tales soluciones son los preferidos por la mayoría de las personas. También debe considerar si desea almacenar en caché solo contenido estático (como imágenes, hojas de estilo, ...) o también contenido generado dinámicamente.

15

El encabezado Cache-Control se utiliza en HTTP 1.1 para controlar el comportamiento de las memorias caché. La directiva de máxima edad se utiliza para especificar (en segundos) la edad máxima del contenido antes de que se agote (es decir, el contenido no cambiará durante un período de tiempo). Así que si usted sabe que su contenido no va a cambiar durante 3 días, quiere que el servidor para agregar el siguiente encabezado HTTP:

Cache-Control: max-age=259200 

(259200 = 60 x 60m x 24 x 3d)

Para hacer eso en PHP, añadir esta línea a su salida:

header('Cache-Control: max-age=259200'); 

Lea aquí para obtener más información sobre la función de cabecera:

+1

Para IIS puede configurarlo para contenido estático (mantener dinámicas cosas dinámicas) en el web.config usando el formato '[-] [d.] hh: mm: ss [.ff]'. Debe ir bajo ' ' –

Cuestiones relacionadas