html5オフラインappcacheから現在のページを省略しますが、キャッシュされたリソースを使用します
-
25-10-2019 - |
質問
パフォーマンスのために、私のWebページの一部に、オフラインで使用するためにキャッシュされたリソース(画像、CSSなど)を使用してもらいたいが、コンテンツが動的に生成されるにつれてページ自体がキャッシュされないようにしたい。
これを行う1つの方法は、ページをリファクタリングして、Ajaxを介して動的コンテンツをロードするか、LocalStorageで物事を調べることです。詳細は異なる場合がありますが、大まかに言えば、そのようなものです。
可能であれば、ページにキャッシュされたリソース(再び、画像、CSSなど)を使用するようにブラウザに指示する方法を見つけたいが、実際には(動的に生成された)HTMLコンテンツ自体を実際にキャッシュしないようにしたいと思います。
HTML5オフラインAppCacheでそれを行う方法はありますか?私は答えが「いいえ」であるという印象を受けています。
- マニフェストを含むすべてのページはキャッシュされているため、ページ自体にキャッシュされたリソースを指定できません。
- 以前のページに「この他のページにオフラインアセットを使用しますが、実際にはそのページでHTMLをキャッシュしないでください」ということを伝える方法はありません。ページ自体を指定する必要があります。つまり、HTMLはキャッシュされます。
私はそれについて間違っていますか?それはおそらくそれを取り巻くいくつかのトリッキーな(またはそれほど巧妙ではない)方法があるようです。入力したので、ページを明示的に含めるかどうか疑問に思います NETWORK
AppCacheマニフェストのセクションがトリックを行います。
解決
私の答えは「はい」です。
私はマニフェストに必要なすべてのリソースをリストし、 NETWORK
セクションに *
.
マニフェストは、メインランディングページにのみ含まれます。そのため、すべてのリソースは、サイトに初めて訪れたときにキャッシュされ、おやつに動作します。
要するに、
ページの1つにはマニフェストを含める必要があるため、キャッシュされます。
たぶん、マニフェストをiframeにロードして、ページ全体をキャッシュしないようにすることができます。
キャッシュされるすべてのリソースをリストします
CACHE
セクション- をセットする
NETWORK
セクションに*
他のヒント
これに対する答えがノーであることはかなり確信しています。 Chromeのネットワークセクションを使用すると、どのリソースがキャッシュからロードされ、どのリソースがサーバーからロードされているかが表示されます。上記のようにAppCacheを設定しようとしましたが、リソースは常にサーバーからロードされます。現在のページがAppCacheにない場合、リソースのいずれかをAppCacheにチェックインすることを気にしないと仮定するのは正しいでしょうか?
私が見つけたのは、ネットワーク内のAppCacheでキャッシュされたくないファイル:マニフェストのセクションをリストすることです。私にとって、それはネットワークセクションに * .asp *を追加することを意味しました。現在、古典的なASPファイル、またはASPXファイルはキャッシュされていません。