1

ブラウザのキャッシュ無効化についてご提案をお願いします。

httpヘッダーを使用してクライアントに返されるインデックスページがあると仮定します。

Cache-Control: public, max-age=31534761
Expires: Fri, 17 Feb 2012 18:22:04 GMT
Last-Modified: Thu, 17 Feb 2011 18:22:04 GMT
Vary: Accept-Encoding

ユーザーがそのインデックスページをもう一度ヒットしようとすると、ブラウザがサーバーにリクエストを送信しない可能性が非常に高くなります。つまり、キャッシュされたバージョンのページがユーザーに表示されるだけです。

私の質問は次のとおりです。ユーザーがそのリソースにアクセスすると、ブラウザにキャッシュを無効にしてサーバーに要求する方法でインデックスページにリダイレクトされるように、Webリソース(たとえば、uri / invalidateIndex)を作成することは可能ですか。新鮮なコンテンツのために?

4

2 に答える 2

1

私は自分のプロジェクトで同様の問題を抱えているので、まだ解決策が見つからない場合は、いくつかの提案があります...

  1. これは、jQuery が ajax リクエストを強制的にキャッシュしないようにする方法として見てきました。URL に HTTP パラメータをランダムな値または名前で追加するため、新しいリクエストごとに本質的に異なる URL があり、ブラウザはキャッシュを使用しません。 . 実際には、/invalidateIndex URI をそのような URL にリダイレクトすることができます。もちろん問題は、ブラウザが元のインデックス URL を実際に無効にすることはなく、ブラウザが常にインデックスを再要求することです。

  2. もちろん、キャッシュが約 1 時間ごとに無効になるように、http ヘッダーの Cache-Control の max-age を 1 時間まで小さく変更することもできます。

  3. また、ETagsを使用することもできます。キャッシュされたデータには、リクエストごとに送信されるタグがあり、基本的にインデックスが変更されたかどうかをサーバーに尋ねます。

2、3は組み合わせてもいいと思います...

于 2011-05-20T10:59:58.140 に答える
-1

ブラウザーに特定のファイルのキャッシュを消去するように直接要求する方法はありませんが、このようなシステムが少数しかなく、帯域幅が十分にある場合は、同じプロトコル、ホスト、およびポートで大きなオブジェクトを返すことを試みることができます。キャッシュは古いオブジェクトの削除を開始します。たとえば、https://bugzilla.mozilla.org/show_bug.cgi?id=81640を参照してください。

于 2011-02-21T07:27:37.990 に答える