2012-01-27 7 views
5

En este momento estoy tratando de minimizar las 304 solicitudes a mi sitio web. He implementado las sugerencias para los llamados aquí:Problemas para minimizar 304 solicitudes

Asking browsers to cache as aggressively as possible

Sin embargo, no importa lo que haga algunas imágenes se niegan a ser sacados de la memoria caché a pesar de que son similares a otros que se extraen. En este momento estamos usando IIS 7.5 y Chrome para ver el tráfico de la red.

Aquí es un ejemplo de la respuesta inicial de la imagen, BTN-blue.png, que se tire de la caché:

Accept-Ranges:bytes 
Content-Length:49585 
Content-Type:image/png 
Date:Fri, 27 Jan 2012 16:02:26 GMT 
ETag:"26cb96cdccc1:0" 
Expires:Sat, 31 Dec 2012 00:00:00 GMT 
Last-Modified:Thu, 26 Jan 2012 20:49:46 GMT 
Server:Microsoft-IIS/7.5 
X-Powered-By:ASP.NET 

Aquí es un ejemplo de la cabecera de respuesta para la imagen, topnav- azul-poweredbyipipeline.png, que nunca va a sacar de la caché:

Accept-Ranges:bytes 
Content-Length:2680 
Content-Type:image/png 
Date:Fri, 27 Jan 2012 16:02:17 GMT 
ETag:"b85767a6cdccc1:0" 
Expires:Sat, 31 Dec 2012 00:00:00 GMT 
Last-Modified:Thu, 26 Jan 2012 20:49:47 GMT 
Server:Microsoft-IIS/7.5 
X-Powered-By:ASP.NET 

Alguna idea de por qué se podría tirar y el otro no lo hará?

+0

¿Querías decir "maximizar" 304 respuestas? Debe considerar añadir encabezados relacionados con el almacenamiento en caché en las respuestas (hay un par de ellos tratados de forma diferente por diferentes navegadores), luego ETag y Expires también son relevantes. –

+0

En realidad, estoy buscando hacerlo para que el navegador no necesite llamar al servidor en absoluto. Solo sáquelo del caché. En este momento está recibiendo un mensaje 304 pero esperaba que no tuviera que hacer esa llamada en primer lugar. –

+0

El navegador debe descargar el contenido que se encuentra en una url determinada al menos una vez. Depende del servidor "pedir" al navegador que lo guarde en caché (al tiempo que especifica "cómo" y "durante cuánto tiempo"), y depende del navegador respetar eso. El servidor proporciona estas instrucciones a través de los encabezados de respuesta (una investigación por separado, solo le estoy dando punteros), y estoy bastante seguro de que todos los navegadores populares cumplirán esas instrucciones sin mentirte. –

Respuesta

5

Así que descubrimos por qué sucedía esto. Resulta que si utilizas el botón Enter para navegar a una página web, Chrome usará agresivamente su caché. Si usa el botón de actualización, Chrome hará una llamada para casi todos los elementos.

0

Todo en esa otra publicación que ha vinculado tiene un control de caché: max-age = header. ¿Has probado eso? No creo que caduque y etag es suficiente, creo que también necesitas el control de caché, pero en realidad no lo he probado.

+0

En realidad, sí, he intentado usar Cache-Control también, pero obtengo los mismos resultados. ¡No creo que pueda hacer que IIS use ambos, pero si conoces una forma en la que me gustaría probar! –

Cuestiones relacionadas