8

すべてのURLを単一のキャッシュマニフェストにリンクできます。しかし、同じURLにリンクされた複数のキャッシュマニフェストが必要です。理由は次のとおりです。

キャッシュしたいファイルの中には、めったに更新されずに大きくなるものがあります。したがって、キャッシュが更新されるたびに、これらの大きなファイルは、変更されていない場合でも再ダウンロードされます。だから私はキャッシュを分割したいと思います。これらの1つのキャッシュはめったに更新されない大きなファイル用で、もう1つのキャッシュは頻繁に更新される軽いファイル用です。

HTML5キャッシュを分割する方法を知っていますか?

4

7 に答える 7

9

最も効率的な方法は次のとおりです。

a) マニフェストの CACHE セクションに記載されているすべてのリソースで遠い将来の有効期限 (max-age) を使用し、CACHE セクションの各ファイルにタイムスタンプ サフィックスを追加します。

キャッシュ:
menu_1355817388000.js
toolbar_1355817389100.js

b) 上記のファイルのいずれかがサーバー上で変更された場合は、タイムスタンプを変更するためにマニフェストを再生成/更新します。次回は、タイムスタンプが変更されたファイルのみがダウンロードされます。任務完了。

注: ブラウザーでページを 2 回リロードします。最初の更新では、ブラウザーはマニフェストのみをダウンロードし、キャッシュされた古いリソースを使用してページを描画します。これは、ページの表示を高速化するために行われます(この二重更新の問題を処理するためのトリックがありますが、それらは質問の範囲外です)

appcache でこれまでに見たこの長いが最高の記事で詳細を参照してください。

于 2012-12-20T03:10:36.773 に答える
2

iframeを使用する

ページのキャッシュマニフェストにはライトファイルが含まれ、このページによって読み込まれるiframeのキャッシュマニフェストにはラージファイルが含まれます

Chromeでは、iframeのアプリケーションキャッシュもページに使用されます。私はまだ他のブラウザでこのメソッドをテストしていません。

http://www.timer-tab.comでライブの例を参照してください。また、chromeを使用している場合は、chrome://appcache-internals/で分割されたキャッシュを参照してください。

于 2011-11-15T16:29:34.490 に答える
2

マニフェスト ファイルが変更され、アプリケーション キャッシュのファイルが再度ダウンロードされると、通常の HTTP キャッシュ ルールが引き続き適用されます。これは、これらの大きなファイルに正しい HTTP キャッシュ ヘッダーを設定すると、304 が返されるため、これらのファイルが再度ダウンロードされないことを意味します。したがって、アプリケーション キャッシュを分割する必要はありません。

于 2012-07-22T12:29:27.300 に答える
1

答えかもしれませんが、自分のWebアプリケーションのトラブルシューティングとして、調査結果に光を当てたいと思います。

マニフェストをロードするために 2 つの iframe (manifest_framework) と (manifest_media) を使用できることを発見しましたが、それらがどのようにターゲットにされているかはまだ明確ではありませんが、成功は限られていました。

manifest_framework:

CACHE MANIFEST

CACHE:
appdata.ini
dialog.png
jquery.min.js
login.htm
login.js
manifest.appcache.js

NETWORK:
*

FALLBACK:

マニフェスト_メディア:

CACHE MANIFEST

CACHE:
manifest_fwk.php
od/audio_track_1_1.m4a
od/audio_track_1_2.m4a
od/audio_track_1_3.m4a
od/audio_track_1_4.m4a
od/video_1.mp4
od/video_2.mp4
od/video_3.mp4

NETWORK:
*

FALLBACK:
./ webapp.php

./index.php は、それ自体はキャッシュされませんが、オフラインのときに webapp.php にフォールバックする「ランディング ページ」のページです。

私が理解していないのは、これらが webapp.php ページにどのようにリンクしているかです。どちらか一方のマニフェスト キャッシュにしかアクセスできないことがわかりました。上記はモバイルサファリで機能し、メディアはキャッシュされ、画像はフレームワークマニフェストのJSまたは画像である必要はありません。

1 つの URL/ページから複数のマニフェストが参照される例を他に持っている人はいますか?

于 2014-07-14T12:28:53.433 に答える
-1
CACHE MANIFEST

# This is a comment.
# Cache manifest version 0.0.1
# If you change the version number in this comment,
# the cache manifest is no longer byte-for-byte
# identical.

demoimages/mypic.jpg
demoimages/yourpic.jpg
demoimages/ourpic.jpg
sr/scroll.js

NETWORK:
# All URLs that start with the following lines
# are whitelisted.
# whitelisted items are needed to help the site function, you could put regularly
# changing items here
http://example.com/examplepath/
http://www.example.org/otherexamplepath/

CACHE:
# Additional items to cache.
demoimages/allpics.jpg

FALLBACK:
demoimages/currentImg.jpg images/stockImage.jpg`
于 2011-10-21T00:05:58.820 に答える
-1

Iframe トリックが機能しない場合は、HTML5 FileSystem API を使用してください

http://updates.html5rocks.com/2012/04/Taking-an-Entire-Page-Offline-using-the-HTML5-FileSystem-APIを参照してください。

于 2012-04-29T16:29:24.527 に答える