guardar event enables checking cache application app html html5 caching cache-manifest

event - Caché HTML5: ¿es posible tener varios cachés distintos para una sola URL?



html5 offline (7)

Tal vez una respuesta, pero me gustaría arrojar algo de luz sobre mis hallazgos cuando soluciono mi propia aplicación web.

Descubrí que puedo usar 2 iframes (manifest_framework) y (manifest_media) para cargar los manifiestos, pero aún no estoy del todo claro cómo se dirigen, pero tuve un éxito limitado.

manifest_framework:

CACHE MANIFEST CACHE: appdata.ini dialog.png jquery.min.js login.htm login.js manifest.appcache.js NETWORK: * FALLBACK:

manifest_media:

CACHE MANIFEST CACHE: manifest_fwk.php od/audio_track_1_1.m4a od/audio_track_1_2.m4a od/audio_track_1_3.m4a od/audio_track_1_4.m4a od/video_1.mp4 od/video_2.mp4 od/video_3.mp4 NETWORK: * FALLBACK: ./ webapp.php

./index.php es la página de la ''landing page'' que no está en caché, pero vuelve a caer en webapp.php cuando está fuera de línea.

Lo que no entiendo es cómo estos enlaces a la página webapp.php. Estoy descubriendo que solo puedo acceder a una u otra caché de manifiestos. Lo anterior funciona en el safari móvil, los medios se almacenarían en caché, y la imagen, pero no necesariamente, se mostraría en el JS o en las imágenes del marco.

¿Alguien tiene más ejemplos donde se hace referencia a manifiestos múltiples desde una URL / página?

Cada URL puede vincularse a un solo manifiesto de caché. Pero quiero varios manifiestos de caché vinculados a una misma URL. Esta es la razón:

Algunos archivos que quiero que se almacenen en la memoria caché rara vez se actualizan y son grandes. Por lo tanto, cada vez que se actualiza la caché, estos archivos de gran tamaño se vuelven a descargar aunque no se hayan modificado. Entonces quiero dividir el caché. Un caché para tesis rara vez actualiza archivos de gran tamaño y otro caché para los archivos ligeros a menudo actualizados.

¿Ustedes tienen alguna idea de cómo dividir un caché HTML5?


CACHE MANIFEST # This is a comment. # Cache manifest version 0.0.1 # If you change the version number in this comment, # the cache manifest is no longer byte-for-byte # identical. demoimages/mypic.jpg demoimages/yourpic.jpg demoimages/ourpic.jpg sr/scroll.js NETWORK: # All URLs that start with the following lines # are whitelisted. # whitelisted items are needed to help the site function, you could put regularly # changing items here http://example.com/examplepath/ http://www.example.org/otherexamplepath/ CACHE: # Additional items to cache. demoimages/allpics.jpg FALLBACK: demoimages/currentImg.jpg images/stockImage.jpg`


Usa un iframe

El manifiesto de caché de su página incluiría los archivos de luz y el manifiesto de caché de un iframe cargado por esta página incluiría los archivos de gran tamaño

En Chrome, la caché de aplicaciones del iframe también se usará para la página. No probé este método en otros navegadores todavía.

vea un ejemplo en vivo en http://www.timer-tab.com y si está usando Chrome, vea su caché de división en chrome: // appcache-internals /



Cuando se modifica el archivo de manifiesto y se vuelven a descargar los archivos de la caché de la aplicación, se siguen aplicando las reglas normales de caché de HTTP . Esto significa que si configura los encabezados de caché HTTP correctos para estos archivos grandes, obtendrá un 304 para que estos archivos no se vuelvan a descargar. Por lo tanto, no es necesario dividir el caché de la aplicación.


La forma más eficiente es:

a) Use la fecha de vencimiento del futuro lejano (máximo de edad) en todos los recursos mencionados en la sección CACHE del manifiesto y agregue el sufijo de la marca de tiempo a cada archivo en la sección CACHE, por ejemplo:

CACHE: menu_1355817388000.js toolbar_1355817389100.js

b) Cuando cualquiera de los archivos anteriores cambie en el servidor, renueve / actualice el manifiesto para cambiar la marca de tiempo. Solo el archivo con la marca de tiempo modificada se descargará la próxima vez. Misión cumplida.

Nota: vuelva a cargar la página dos veces en el navegador, ya que en el primer navegador de actualización solo descarga el manifiesto y utiliza recursos antiguos en la memoria caché para pintar la página. Esto se hace para acelerar la visualización de la página (hay trucos para manejar este problema de doble actualización, pero están fuera del alcance de su pregunta)

Vea más información en este largo pero mejor artículo que he visto en Appcache .


El grupo de trabajo W3C ha abandonado la API del sistema de archivos, por lo que NO SE DEBE UTILIZAR.

Es probable que veamos que caiga en la próxima versión de Chrome.

http://www.w3.org/TR/file-system-api/