2010-04-22 19 views
5

Soy un desarrollador web, he trabajado con PHP y .NET ambos. Con más de un año de experiencia trabajando en la web, no he podido comprender a fondo las funciones de caché del navegador, espero que Web Gurus pueda ayudarme con esto. Preguntas que tengo en mi mente son:¿Cómo funciona el navegador con los encabezados de caducidad, los encabezados de control de caché, el último encabezado modificado?

  • ¿Cómo funciona el navegador realidad almacena en caché cosas, ¿se solicite para ver si el archivo almacenado en caché ha cambiado en el servidor o no,
  • Cuál es la forma ideal para un desarrollador para hacer uso del caché del navegador al máximo, pero también para poder impulsar nuevos cambios en el sitio sin problemas. Creo que si el navegador almacena en caché mi CSS y JS e imágenes, y luego solo realiza una comprobación de su modificación en el servidor cada vez, esto puede solucionar el problema. pero no estoy seguro de cómo hacerlo.
+0

http://www.enhanceie.com/redir/?id=httpperf – EricLaw

Respuesta

4

Esta entrada de blog puede ayudar:

http://blog.httpwatch.com/2007/12/10/two-simple-rules-for-http-caching/

En él se explica cómo utilizar el almacenamiento en caché, mientras se mantiene la capacidad de hacer cambios cuando sea necesario.

+1

Leí este blog antes de hacer esta pregunta, pero no responde mis preguntas porque quiere que agregue una cadena de consulta una y otra vez mientras cambio mis archivos, y con la mayoría de los sitios en estos días tenemos muchos archivos CSS y JS cargando, y muchas imágenes, tendré que contratar otro recurso dedicado para verificar y cambiar la cadena de consulta diariamente a continuación. :) –

+0

Si tiene muchos recursos que están cambiando, entonces necesitaría algún tipo de sistema automatizado que actualice las URL integradas antes de la implementación. – HttpWatchSupport

2

Con CSS presenta una "solución" estándar consiste en añadir de forma incremental un parámetro para un enlace:

<link rel="stylesheet" href="http://mysite.com/styles.css?v=1"> 
<link rel="stylesheet" href="http://mysite.com/styles.css?v=2"> 
... 

Esto obligará a un navegador para volver a cargar el archivo.

+0

me quiere agregar una cadena de consulta una y otra vez a medida que cambio mis archivos, y con la mayoría de los sitios en estos días tenemos muchos CSS y Carga de archivos JS, y muchas imágenes, tendré que contratar otro recurso dedicado para verificar y cambiar la cadena de consulta diariamente a continuación. :) –

+0

@Umair: Debería poder automatizar completamente la cadena de consulta, si está trabajando en PHP o .NET. Si está codificando la URL completa en archivos HTML estáticos, será más difícil hacerlo, pero su sitio no es realmente tan dinámico de todos modos. – Avi

+0

no usará el encabezado caduca, el almacenamiento en el caché del navegador y la última modificación, ya que me ahorró la molestia de automatizar las cadenas de consulta –

0

Si usa un idioma del lado del servidor, puede forzar al navegador para que descargue el archivo nuevamente.

<script src="script.js?<?= uniqid(); ?>"> 
<img src="myfile.jpg?<?= uniqid(); ?>"> 

Pero caché es bueno si quieren tener un sitio más rápido, antes de iniciar la desactivación tener en cuenta que cualquier cosa que sea caché no tendrá que ser descargada de nuevo.

Hay otra manera de controlar lo que debe almacenarse en caché, HTML5 Application Cache, volcar la lógica de caché en el archivo de manifiesto. Por lo tanto, no se volverá a descargar cada archivo en su manifiesto hasta que se modifique el archivo de manifiesto.

Solo recuerda que si cambiaste algo en un JS, CSS, archivo de imagen y necesitas aplicar ese cambio a los visitantes recurrentes, también debes actualizar tu archivo de manifiesto. Puede agregar como la fecha de publicación de esa manera que el navegador sepa que se trata de un nuevo manifiesto y lo descargará todo nuevamente.

Cuestiones relacionadas