一部のユーザーのアプリケーション キャッシュ (HTML 5) が破損している場合、この問題に何度も遭遇します。
新しいリリースがあるたびにマニフェスト ファイルを更新しますが、一部のユーザーはアプリケーション キャッシュが破損することがあります。
そのような場合、アプリケーションキャッシュにあるものを完全にクリアし、サーバーからすべての新しいコンテンツをロードしたいと考えています.
Javascriptを使用してそれを行う方法はありますか?
一部のユーザーのアプリケーション キャッシュ (HTML 5) が破損している場合、この問題に何度も遭遇します。
新しいリリースがあるたびにマニフェスト ファイルを更新しますが、一部のユーザーはアプリケーション キャッシュが破損することがあります。
そのような場合、アプリケーションキャッシュにあるものを完全にクリアし、サーバーからすべての新しいコンテンツをロードしたいと考えています.
Javascriptを使用してそれを行う方法はありますか?
次の記事によると
http://www.w3schools.com/html5/html5_app_cache.asp
アプリケーションキャッシュをリセットする方法は3つあります。これらは次のとおりです。
プログラムによるアプリケーションキャッシュの更新の詳細については、次を参照してください。
http://www.html5rocks.com/en/tutorials/appcache/beginner/
これは次のようになります。
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.
}
これはかなり古いものですが、間違った答えが賛成票を投じられているのを見て、ヒントを与えたいと思いました....
仕様を見るのに問題がある場合は、マニフェストに変更がない限り、コードでブラウザに強制的にキャッシュをリロードさせる方法がないことがわかります。それは、「appCache.status == window.applicationCache. UPDATEREADY」は真です。
ここを見てください http://www.w3.org/TR/2011/WD-html5-20110525/offline.html
updatereadyマニフェストにリストされているリソースが新たに再ダウンロードされ、スクリプトは swapCache() を使用して新しいキャッシュに切り替えることができます。
したがって、注意深く読むと、リソースがダウンロードされたときに applicationCache がそのステータスになることがわかります...つまり、以前の「ダウンロード」イベントが発生し、その前に「チェック」が発生しました... .