Pregunta

Para fines de rendimiento, quiero que algunas de mis páginas web usen recursos que se han almacenado en caché para uso fuera de línea (imágenes, CSS, etc.) pero para no tener la página almacenada en caché, ya que el contenido se generará dinámicamente.

Una forma de hacer esto sería refactorizar mis páginas para que carguen el contenido dinámico a través de Ajax o buscando las cosas en LocalStorage. Los detalles pueden variar, pero en términos generales, algo así.

Si es posible, preferiría encontrar una manera de simplemente instruir al navegador que use recursos en caché (nuevamente, imágenes, CSS, etc.) para la página, pero que no almacene en caché el contenido HTML (generado dinámicamente) en sí.

¿Hay alguna manera de hacerlo con appCache fuera de línea HTML5? Tengo la impresión de que la respuesta es "no" porque:

  • Cualquier página que incluya el manifiesto se almacenará en caché, por lo que no puedo especificar los recursos en caché en la página misma.
  • No hay forma de informar una página anterior "Use activos fuera de línea para esta otra página, pero en realidad no almacena en caché el HTML en esa página". Debe especificar la página en sí, lo que significa que el HTML será almacenado en caché.

¿Me equivoco sobre eso? Parece que probablemente haya una forma difícil (o no tan triculosa) en torno a eso. Ahora que lo escribí, me pregunto si incluye la página explícitamente en el NETWORK La sección del manifiesto AppCache hará el truco.

¿Fue útil?

Solución

Mi respuesta es "sí".

He trabajado en una aplicación web donde enumeré todos los recursos necesarios en el manifiesto y establecí el NETWORK sección de *.

El manifiesto se incluye solo en la página de destino principal. Por lo tanto, todos los recursos se almacenan en caché la primera vez que visita el sitio y trabaja un regalo.

En breve,

  • Una de sus páginas debe incluir el manifiesto y, por lo tanto, se almacenará en caché.

    Tal vez pueda cargar el manifiesto en un iframe y no tener toda la página almacenada en caché, solo un pensamiento.

  • Enumere todos sus recursos para ser almacenados en caché en el CACHE sección

  • selecciona el NETWORK sección de *

Otros consejos

Estoy bastante seguro de que la respuesta a esto es no. Si usa la sección de red en Chrome, muestra qué recursos se cargan desde el caché y cuáles se cargan desde el servidor. He intentado establecer el AppCache como se describió anteriormente y los recursos siempre se cargan desde el servidor. ¿Sería correcto asumir que si la página actual no está en el AppCache, entonces no se molestará en verificar el AppCache para cualquiera de los recursos?

Lo que he encontrado que está funcionando es enumerar esos archivos que no desea almacenar en caché en AppCache en la red: sección del manifiesto. Para mí, eso significaba agregar * .asp * a la sección de red. Ahora, ninguno de los archivos ASP clásicos o los archivos ASPX se almacenan en caché.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top