HTML5アプリケーションキャッシュAPIでは、マニフェストファイルのCACHEセクションで宣言されたすべてのファイルをブラウザが再ロードする必要があります(マニフェストファイルが変更され、applicationCache APIで更新が呼び出された場合)。
私のマニフェストファイルには何千ものエントリが含まれています。変更されたファイルのみを再ロードするようにブラウザに指示するためのトリックはありますか?
キャッシュマニフェストにリストされているファイルのキャッシュ動作を制御できないために、同様の問題が発生しました。iFrameを使用することで、このプロセスをある程度制御できることがわかりました。
戦略は、メインキャッシュマニフェストにリストされている数千のファイルを個別の(そしてより管理しやすいキャッシュマニフェスト)に分割し、それぞれがキャッシュマニフェストを参照する多数のダミーHTMLページを作成することです。次に、ダミーHTMLごとに、それにリンクするiFrameをメインのHTMLドキュメントに追加します。iFrameを非表示のdiv内に配置すると、トリックがユーザーに表示されなくなります。
各iFrameが読み込まれると、個々のキャッシュマニフェストがチェックされます。そのキャッシュマニフェスト内のファイルが変更された場合、iFrameはファイルのサブグループのみをキャッシュします。変更が予想される量に応じて、関連するファイルをインテリジェントにグループ化できます。
さらに優れているのは、ユーザーの操作の任意の時点でメインHTMLにiFrameを動的に挿入でき、iFrameが読み込まれたときにのみ、キャッシュの進行状況がトリガーされることです。