7

パフォーマンス上の理由から、Web ページの一部で、オフラインで使用するためにキャッシュされたリソース (画像、CSS など) を使用したいと考えていますが、コンテンツが動的に生成されるため、ページ自体はキャッシュされないようにしたいと考えています。

これを行う 1 つの方法は、ページをリファクタリングして、AJAX を介して動的コンテンツをロードするか、LocalStorage を検索することです。細かいところは違うかもしれませんが、大まかに言えばそんな感じです。

可能であれば、キャッシュされたリソース (画像、CSS など) をページに使用するようブラウザに指示するだけで、(動的に生成された) HTML コンテンツ自体を実際にキャッシュしないようにする方法を見つけたいと思います。

HTML5 オフライン appcache でそれを行う方法はありますか? 次の理由から、答えは「いいえ」であるという印象を受けています。

  • マニフェストを含むページはすべてキャッシュされるため、ページ自体でキャッシュされたリソースを指定することはできません。
  • 前のページに「この別のページにはオフライン アセットを使用するが、実際にはそのページの HTML をキャッシュしない」ことを伝える方法はありません。ページ自体を指定する必要があります。つまり、HTML がキャッシュされます。

私はそれについて間違っていますか?おそらく、それを回避するためのトリッキーな(またはそれほどトリッキーではない)方法があるようです。NETWORK入力したので、appcache マニフェストのセクションにページを明示的に含めることでうまくいくかどうか疑問に思います。

4

3 に答える 3

7

私の答えは「はい」です。

NETWORKマニフェストに必要なすべてのリソースをリストし、セクションをに設定したWebアプリに取り組んできました*

マニフェストは、メインのランディングページにのみ含まれます。したがって、最初にサイトにアクセスしたときにすべてのリソースがキャッシュされ、それが機能します。

要するに、

  • ページの1つにマニフェストが含まれている必要があるため、キャッシュされます。

    マニフェストをiframeにロードして、ページ全体をキャッシュしないようにすることもできます。

  • CACHEセクションにキャッシュするすべてのリソースを一覧表示します

  • NETWORKセクションをに設定します*
于 2011-11-30T02:00:10.190 に答える
2

これに対する答えはノーだと確信しています。Chrome で Network セクションを使用すると、キャッシュからロードされたリソースとサーバーからロードされたリソースが表示されます。上記のように appcache を設定しようとしましたが、リソースは常にサーバーから読み込まれます。現在のページが appcache にない場合、リソースの appcache をチェックインする必要はないと思いますか?

于 2013-07-04T14:34:34.643 に答える
0

マニフェストの NETWORK: セクションで appcache にキャッシュしたくないファイルをリストすることで、機能していることがわかった。私にとって、これは *.asp* をネットワーク セクションに追加することを意味していました。現在、従来の asp ファイルまたは aspx ファイルはキャッシュされません。

于 2014-01-14T16:27:37.817 に答える