Sí, este es el actual comportamiento "correcto". Esto es lo que sucede:
Cuando se acaba de hacer cambios en el archivo de manifiesto, y se actualiza el navegador, esto es lo que sucede (suponiendo que esté en línea)
- el navegador carga por primera vez de nuevo todos los archivos en la caché
- entonces la comprobación del navegador en línea para su archivo de manifiesto
- detecta que el archivo de manifiesto ha cambiado, se procederá a descargar los nuevos archivos
- sin embargo, tener en cuenta, en este momento, se seguirá mirando sus 'archivos viejos' porque el navegador ha cargado los archivos antiguos antes de ir en línea para descargar los 'nuevos archivos'
- si en este punto, si se golpea actualizar de nuevo (segundo tiempo), usted debe obtener los 'nuevos archivos'
Este es actualmente el comportamiento estándar. Algunas personas colocan algunos controladores de eventos para solicitar al usuario que realice otra actualización (después de la primera actualización)
Personalmente, creo que el navegador debe ser responsable de alertar al usuario para que realice otra actualización después de terminar la descarga de los archivos nuevos, pero a la derecha ahora, la mayoría de las personas coloca controladores de eventos desde "window.applicationCache" para activar eventos y ayudar a administrar esto.
Para ver un ejemplo de la utilización de window.applicationCache, entra aquí: http://www.html5rocks.com/en/tutorials/appcache/beginner/
Está bajo la sección "Actualización de la caché".