Webサーバーのヘッダーにアクセスできない場合は、キャッシュをオフにすることができます。
<meta http-equiv="Cache-Control" content="no-store" />
しかし、私はまたこれがIEのいくつかのバージョンでは機能しないことを読みました。すべてのブラウザでキャッシュを無効にする<meta>タグのセットはありますか?
ここで答えを見てください: すべてのブラウザで、Webページのキャッシュを制御する方法?
リストはさまざまなテクニックの単なる例であり、直接挿入するためのものではありません。コピーした場合、http-equiv宣言のために2番目のものが最初のものを上書きし、4番目のものが3番目のものを上書きし、W3Cバリデーターで失敗します。せいぜい、各http-equiv宣言を1つずつ持つことができます。プラグマ、キャッシュ制御および期限切れ最新のブラウザを使用している場合、これらは完全に古くなっています。とにかくIE9の後。 ChromeとFirefoxは、あなたが予想していたとしても、とにかくうまく動作しません。
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
キャッシュヘッダはmeta要素では信頼できません。 1つは、サイトとユーザーの間のWebプロキシはそれらを完全に無視することです。 Cache-ControlやPragmaなどのヘッダーには、常に実際のHTTPヘッダーを使用してください。
これは、業界全体のキャッシュ制御の誤解に関する優れたケーススタディへのリンクです。
http://securityevaluators.com/knowledge/case_studies/caching/
要約すると、この記事によると、Cache-Control: no-store
のみがChrome、Firefox、およびIEによって認識されます。 IEは他のコントロールを認識しますが、ChromeとFirefoxは認識しません。
IE5では機能しませんが、大きな問題ではありません。
ただし、ヘッダーのキャッシュはmeta要素では信頼できません。 1つは、サイトとユーザーの間のWebプロキシはそれらを完全に無視することです。 Cache-ControlやPragmaなどのヘッダーには、常に実際のHTTPヘッダーを使用してください。
同じサービスコールを繰り返すと(ロングポーリング)、サービスコールに関するキャッシュの問題に気づきました。メタデータを追加しても役に立ちませんでした。 1つの解決策はtimestamp
を渡してie
が別のhttp
サービス要求であると見なすようにすることです。これは私にとってはうまくいったので、このタグを自動的に更新するためにサーバーサイドのスクリプトコードスニペットを追加しても問題ありません:
<meta http-equiv="expires" content="timestamp">
プラグマはあなたの最善の策です:
<meta http-equiv="Pragma" content="no-cache">