Tengo una página que carga muchas imágenes, css y javascript. Agregué un futuro encabezado Expires y establecí Cache-Control en público en estas dependencias externas, por lo que deben almacenarse en caché. Pero cada vez que hago un Post/Redirect/Get Chrome, intento cargar estos de nuevo. Este comportamiento es muy similar a volver a cargar la página. He agregado ETags y manejo el encabezado If-None-Match que ayuda un poco, pero aún genera demasiadas solicitudes inútiles.Recarga de página completa en Publicar/Redirigir/Obtener ignorar el control de caché
¿Cómo le digo a Chrome y Safari que obtengan los archivos del caché?
chrome NOK
safari NOK
firefox OK
ie OK
Véase también Full page reload on Post/Redirect/Get ignoring cache control en el foro de soporte de Google.
Aclaración:
no quiero que el navegador para solicitar image1.png
dos veces. Debería estar en caché.
200 GET page1.html
200 GET image1.png (Cache-Control: public, Expires and ETag)
302 POST action.asp (form submitted from page1.html, redirects)
200 GET page2.html
304 GET image1.png (If-None-Match)
Ejemplo:
He creado un ejemplo simple para ilustrar el problema.
encabezados:
las cabeceras que envío con la imagen son:
HTTP/1.1 200 OK
Date: Fri, 18 Jun 2010 11:30:22 GMT
Server: Apache
Cache-Control: public, max-age=86400
Expires: Sat, 19 Jun 2010 11:30:24 GMT
Etag: "123"
Content-Length: 866
Content-Type: image/png
que debería hacer más en caché durante 24 horas. No hay variación: * ni nada de eso.
Actualización: Este comportamiento ahora también está presente en Safari Mobile en iOS 4. Una regresión horible en la velocidad de carga de página.
Actualización: Hay un informe de error acerca de este problema en el buglilla de webkit. Bug 38690 - Submitting a POST that leads to a server redirect causes all cached items to redownload
Actualización: El problema persiste en iOS 4.0.1
Actualización: El problema persiste en IOS 4,1
Actualización: El problema persiste en IOS 4.2
Actualización: el problema persiste en iOS 4.2.1 y en Chrome desde la versión 6 hasta 9.
Actualización: Hay un informe de error sobre este tema en el proyecto Chromium.(Puede destacar que de mostrar preocupación) Issue 68621: Post/Redirect/Get ignoring cache instructions
Actualización: el problema persiste en Chrome desde la versión 6 hasta 10. Ahora es un error 9 meses de edad.
Actualización: El problema está solucionado el 2011-03-21 19:33:07 PST. Esto se refleja en el comportamiento de cromo 12 (canario).
Es un problema de webkit, en lugar de un problema específico con Chrome. –
@Dan, lo sé, pero espero que los chicos de Google corrija esto en uno de sus muchos lanzamientos. Hay un parche disponible, pero aún no está incluido en Chrome. –
Pensé que el parche causó una regresión, ¿por qué no fue aceptado? –