2011-05-03 10 views
8

Estoy trabajando en una aplicación web sin conexión utilizando un archivo de manifiesto de caché. Tengo problemas para actualizar mis archivos javascript. Si cambio un archivo .js (que figura en el archivo de manifiesto) y luego cambio la versión del archivo de manifiesto no. y guárdelo, entonces el archivo .js cambiado no se vuelve a cargar en el cliente. ¿Qué debo hacer para que los archivos .js se actualicen?Aplicación fuera de manifiesto de memoria caché que no refresca los archivos javascript en Chrome

Gracias

Respuesta

11

Eso es debido a que el servidor web le dice a los archivos estáticos caché del navegador durante unas horas. Entonces, el navegador no sabe que el archivo de manifiesto ha cambiado. Puede borrar todos los datos de aplicación 'o' config del servidor web el manifiesto no es cacheable ...

Leer http://diveintohtml5.info/offline.html para obtener más información

Si desea borrar el caché de la aplicación en el cromo uso chrome: // appcache-internals/ y tiene que buscar a mano en C: \ Documents and Settings \ YOURUSERNAME \ Configuración local \ Datos de aplicación \ Google \ Chrome \ Datos de usuario \ Default \ Cache

4

Había asumido que si usa un manifiesto de caché y luego actualizar el manifiesto, que el navegador solicitaría todos los archivos nuevamente. Sin embargo, descubrí que necesitaba establecer explícitamente encabezados en todos los archivos del manifiesto para indicarle al navegador que no almacenara en caché los archivos. Creo que una vez que el manifiesto le dice al navegador que vuelva a solicitar el archivo, el navegador lo trata como cualquier otro archivo en memoria caché no manifiesto. Quizás esto es un error con Chrome, pero siento que vi esto en otro navegador WebKit.

Independientemente, configure los encabezados de los archivos del manifiesto para que nunca se almacenen en la memoria caché y que se vuelvan a cargar cuando actualice el manifiesto. Si estos archivos se usan fuera de una página de manifiesto, es posible que necesite almacenar en caché los archivos según sus necesidades.

+0

Experimenté el mismo comportamiento. En mis experimentos, noté que en este escenario, usando Rack y WEBrick, Chrome 27 vuelve a cargar correctamente los archivos html (independientemente de los encabezados de almacenamiento en caché) pero requiere desactivar el almacenamiento en caché de los archivos JavaScript. Por el contrario, Firefox 21 recarga correctamente los archivos JavaScript incluso con el almacenamiento en caché predeterminado.Para Chrome, puede encontrar un 'config.ru' de trabajo en https://github.com/edymtt/cvsandbox/blob/master/config.ru – edymtt

1

que tenían el mismo problema hasta que me encontré con esta advertencia no tiene precio en el Mozilla Developer site

Importante: No especifique el manifestarse en el manifiesto de caché archivo, de lo contrario será casi imposible informar al navegador un nuevo manifiesto está disponible.

woops. mi error.

Sin embargo, cada vez que cambio algo en el código, necesito cambiar algo en el manifiesto, y luego volver a cargar dos veces, que es un problema no relacionado.

3

Tipo chrome://appcache-internals en la barra de direcciones y luego haga clic en ENTRAR

Una lista de los manifiestos en caché aparecerá a continuación, simplemente borre el que usted quiere y todo se actualizará cuando se carga la página de nuevo.

Espero que esto ayude :)

0

En mi caso, tiene que desactivar la caché del navegador tradicional usando las etiquetas meta. Vea this SO question cómo eso

Cuestiones relacionadas