Мое небольшое приложение HTML5 необходимо повторно развернуть на сервере. Я понял, что мне нужно было только прикоснуться к файлу .appcache, чтобы каждый браузер обновлялся до последней версии файлов при следующем посещении.
Манифест выглядит так:
CACHE MANIFEST
#Version: 201209251353
index.html
apple-touch-icon.png
css/styles.css
data/dump.bin
img/background.png
img/sprites.png
js/core.js
js/jquery-1.8.1.min.js
vid/walkthrough.mov
Чтобы «прикоснуться», я добавил комментарий (#Version:), который должен обновляться при каждом изменении содержимого.
Странно, некоторые файлы обновляются. Не все, например, коллега получает последний core.js, но все равно показывает старый walkthrough.mov.
Есть ли простой механизм принудительного обновления всех файлов из кеша?
Я нашел следующий код на SO и включил его в сценарии, ожидая, что он поможет. Не знаю, насколько это нужно :(
// Application cache refresh
window.addEventListener('load', function(e) {
window.applicationCache.addEventListener('updateready', function(e) {
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
// Browser downloaded a new app cache.
// Swap it in and reload the page to get the new hotness.
window.applicationCache.swapCache();
if (confirm('A new version of this site is available. Load it?')) {
window.location.reload();
}
} else {
// Manifest didn't changed. Nothing new to server.
}
}, false);
}, false);