12

一部のユーザーのアプリケーション キャッシュ (HTML 5) が破損している場合、この問題に何度も遭遇します。

新しいリリースがあるたびにマニフェスト ファイルを更新しますが、一部のユーザーはアプリケーション キャッシュが破損することがあります。

そのような場合、アプリケーションキャッシュにあるものを完全にクリアし、サーバーからすべての新しいコンテンツをロードしたいと考えています.

Javascriptを使用してそれを行う方法はありますか?

4

2 に答える 2

13

次の記事によると

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

アプリケーションキャッシュをリセットする方法は3つあります。これらは次のとおりです。

  1. ユーザーがブラウザのキャッシュをクリアする
  2. マニフェストファイルが変更されます
  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.
}
于 2012-08-05T15:27:00.230 に答える
7

これはかなり古いものですが、間違った答えが賛成票を投じられているのを見て、ヒントを与えたいと思いました....

仕様を見るのに問題がある場合は、マニフェストに変更がない限り、コードでブラウザに強制的にキャッシュをリロードさせる方法がないことがわかります。それは、「appCache.status == window.applicationCache. UPDATEREADY」は真です。

ここを見てください http://www.w3.org/TR/2011/WD-html5-20110525/offline.html

updatereadyマニフェストにリストされているリソースが新たに再ダウンロードされ、スクリプトは swapCache() を使用して新しいキャッシュに切り替えることができます。

したがって、注意深く読むと、リソースがダウンロードされたときに applicationCache がそのステータスになることがわかります...つまり、以前の「ダウンロード」イベントが発生し、その前に「チェック」が発生しました... .

于 2015-05-12T20:00:58.127 に答える