2012-08-05 12 views
11

Llego a este problema muchas veces, donde algunos de los usuarios tienen una memoria caché de aplicación corrupta (HTML 5).Depurar y actualizar la memoria caché de la aplicación html5 a través de javascript

Actualizo el archivo de manifiesto cada vez que hay una nueva versión, algunas veces algunos usuarios obtienen una caché de aplicación corrupta.

En tal caso, quiero borrar completamente lo que hay en su caché de aplicaciones y cargar todo el contenido nuevo del servidor.

¿Hay alguna manera de hacerlo con Javascript?

+0

¿Echa un vistazo a esta publicación? http://stackoverflow.com/questions/1011605/clear-the-cache-in-javascript o este: http://stackoverflow.com/questions/8155064/how-to-programmatically-empty-browser-cache –

+0

no podemos actualizar la versión HTML 5 de la caché de la aplicación también? – Tushar

+0

Ver mi respuesta debajo –

Respuesta

13

acuerdo con el siguiente artículo en

http://www.w3schools.com/html5/html5_app_cache.asp

hay tres maneras de wich la caché de la aplicación se restablecerá, estos son:

  1. El usuario borra la memoria caché del navegador
  2. El archivo de manifiesto se ha modificado
  3. El caché de la aplicación se actualiza mediante programación

Más actualización de la información sobre la programación la caché de la aplicación se puede encontrar aquí:

http://www.html5rocks.com/en/tutorials/appcache/beginner/

se ve algo como esto:

var appCache = window.applicationCache; 

appCache.update(); //this will attempt to update the users cache and changes the application cache status to 'UPDATEREADY'. 

if (appCache.status == window.applicationCache.UPDATEREADY) { 
    appCache.swapCache(); //replaces the old cache with the new one. 
} 
+8

No use w3schools como referencia ... [w3fools] (http://w3fools.com) – Andreas

+0

Todavía estoy enfrentando el mismo problema, creo que porque el archivo de manifiesto no ha cambiado efectivamente. Por lo tanto, el contenido almacenado no se actualiza. Solo se recupera el archivo de manifiesto. – Tushar

+2

@Andreas son solo uno de los muchos sitios que brindan esta información, y es correcta. Ese podría ser su problema, la memoria caché no se borrará si no se aplica a una de las condiciones anteriores. –

7

Ésta es bastante viejo, pero como veo una la respuesta incorrecta fue votado, me sentí como dando alguna pista ....

Si alguien tiene el problema de lo Al consultar la especificación, puede ver que no hay forma de que el código obligue al navegador a volver a cargar la memoria caché, a menos que haya un cambio en el manifiesto, y ahí es cuando "appCache.status == window.applicationCache.UPDATEREADY" es verdadero.

mira aquí http://www.w3.org/TR/2011/WD-html5-20110525/offline.html

"updateready Los recursos que aparecen en el manifiesto han sido recientemente redownloaded, y la secuencia de comandos se pueden utilizar swapCache() para cambiar a la nueva caché."

Por lo tanto, leyéndola cuidadosamente, encontrará que la aplicación Cache llega a ese estado cuando los recursos se acaban de descargar ... es decir, se produjo un evento de "descarga" anterior ... y antes de eso, una "comprobación" "....

Cuestiones relacionadas