小さな 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);