2

html5rocks のチュートリアルに従ってwindow.applicationCache.update()、オフライン キャッシュを強制的に再構築するのに役立つことを期待しました。(http://www.html5rocks.com/en/tutorials/appcache/beginner/#toc-updating-cache)

目的は、ユーザーが「キャッシュの更新」ボタンを押せるようにすることです。これは、ファイル (css、img など) でさえ変更されているため、コンピューター/タブレットはファイルの更新をチェックしません。ユーザーには古いコンテンツが残ります。

これはJSでどのように行うことができますか?

4

1 に答える 1

0

「ファイルが変更されたことをクライアントがどのように知る必要があるか」という質問の場合、答えは簡単です。キャッシュ マニフェストには、それらのファイルが更新されたときに更新される一意の識別子が含まれている必要があります。PHP でマニフェストを生成し、キャッシュされたすべてのファイルから単調に増加するリビジョン番号と MAX(filemtime) の組み合わせを使用します。マニフェスト ファイルがクライアントのファイルと異なる場合、マニフェストにリストされているすべてのファイルの更新をチェックします。 .

update()更新チェックをトリガーし、更新がある場合は更新をダウンロードしますが、実際には古いキャッシュ データを新しいデータに置き換えません。

swapCache()古いキャッシュ バージョンを新しくダウンロードしたバージョンと交換します。

ただし、その時点で、古いJSは、ページが依存するすべての配管をすでに作成しています...

私の html5 アプリケーションはupdate()定期的に呼び出し、キャッシュの更新がダウンロードされると、ユーザーに「Install Updates!」というボタンを表示するだけで、ページがリロードされるだけです。これにより、ユーザーが選択したときに新しくダウンロードされたキャッシュ ファイルが適用されます。彼のワークフローを壊すことなく。

于 2012-09-20T14:54:30.410 に答える