2012-08-24 7 views
14

キャッシュマニフェストファイルを再生して、宣言されているページのキャッシュを停止しようとしています。 HTML5 RocksHTML5オフラインマニフェストページのキャッシュを停止する

ユーザーがナビゲート任意のページから

マニフェストは、暗黙的にアプリケーションキャッシュ

エースに追加されます含まれていることに。マニフェストファイルに特定の成果物をキャッシュするようにします。その1つは、オンラインの単一ページアプリケーションHTMLのオフラインバージョンですが、オンラインバージョンはキャッシュしません。

+0

まだHTML5の新機能ですが、マニフェストを含むページのキャッシュを防ぐための明確な方法がないことに驚いています。 –

+0

うん、私も。マニフェストファイルがより影響力があって、あなたが宣言したものだけがキャッシュされるならば、私はそれを好みました。ページにリンクしてはいけません。それは単に隠された機能です。 – Greg

+0

私の最初の考えは「ネットワークに追加:セクション」でしたが、いくつかのテストの後ではこれはうまくいきません(少なくともIEではうまくいきませんでした。それは明らかに私の意見では間違っている - 明示的に宣言されているものは、常にデフォルトの動作を上書きする必要があります。私はまだこのような問題のためにオフラインのものを使用することについては非常に暫定的です。 – Morvael

答えて

17

これは私が問題を解決した方法です。私のマニフェストファイル

CACHE MANIFEST 
# Version 0.1 

CACHE: 
# Minimised Styles 
/css/style.0.1.min.css 

# Minimised JavaScript 
/js/script.0.1.min.js 

FALLBACK: 
//offline.html 

NETWORK: 
* 

オフラインが今だものだけをキャッシュする方法を、今/offline.html(キャッシュから)

に行くときmydomain.com/に行くノートすべてマニフェストファイルには、mydomain.com/というオンラインページは含まれていません。

mydomain.com/

<iframe src="/offline.html" style="display: none;"></iframe> 

であなたのページの一番下に、次のiframeを入れて、offline.htmlにmanifest="myapp.appcache"を置きます。

これは、mydomain.com/が読み込まれると、(ページにマニフェスト属性がないため)キャッシュされません。ブラウザはiframe経由でoffline.htmlを取得し、HTML属性が存在するため、offline.htmlページを含め、マニフェストファイルの指示に従って、キャッシュしたいものを追加します。

最初のページの読み込みではオーバーヘッドだけが表示されますが、iframeは余分なHTTPリクエストを行いますが、一度キャッシュされるとキャッシュから取り除かれるため、大きな問題にはなりません。

+0

これはChromeで動作するようですが、FireFox v14.0.1で動作するようには思われません。メインのindex.htmファイル(マニフェスト属性はありませんが、マニフェストを持つoffline.htmファイルのiframeはあります)のネットワークからすべての情報を取得し続けます。 – patorjk

+0

私のために働くと思われる... – Greg

+0

FF 15にアップグレードした後、それは私のために働き始めた。セットアップに何か問題があったかどうかは分かりませんが、現在は機能しています。 – patorjk

関連する問題