2009-08-19 10 views
3

私はそれが持っているページを無効にし、本質的に新しいバージョンをフェッチするためにクライアント(JavaScriptを使用して)が必要ですか?クライアント側からブラウザキャッシュ内のページを無効にするにはどうすればよいですか?

私は、ヘッダーとそれをすべて行うことができると思った

Invalidating cached content, If-Modified Headers?

ブラウザが出ては(新しいURLを経由して)新しい要求を行うと、現在のキャッシュされたバージョンを更新持っているがNO方法なら...ように同じ元のURLリクエストを使用して更新されたコンテンツを見ることができますか?

+0

*現在のページ、または現在のページで行われたアクションによって決定される他のページを無効にしますか?私はこれに対する答えにも興味があります。 – Roboprog

+0

私はサンプルテストを持っています、上記のstackoverflowリンクを参照してください... – farinspace

答えて

5

あなたはJavaScriptを使用して、あなたの問題や利用方法のPOSTを解決する代わりに、GETまたはnocache random parameter trick使用することはできません:あなたはより多くの情報が必要な場合

は、以下を参照してください。 Is it possible to cache POST methods in HTTP?

+0

なぜそれがdownvotedされましたか?私は答えが間違っているのを見ない。 – Cleiton

+0

- あなたはJavaScriptを使用して行うことはできないと述べているためです。 GETの代わりにPOSTを使用するのは過度に安らかではないからです。 – Zed

+0

@Zed、ご意見ありがとうございます。しかし、少なくとも私が知っているのは、 "ページキャッシュを無効にする"ことは不可能であり、POSTメソッドを使用するとIEに最新のバージョンを強制的に適用し、対応するRFC 2616はセクション13(HTTPでのキャッシュ)キャッシュしないでください。 – Cleiton

7

あなたがしたい場合はあなたが行うことができます現在のページをリロードします。

location.reload(true); 

そうでない場合は、「伝統的な」方法が終わり

上にランダムなクエリ文字列を追加することです
'...?rnd=' + Math.random(); 
+1

LOL、私のものはこれとまったく同じで、私は投票しました... NICE – Zoidberg

+0

私はdownvoteも持っています...誰かのように見えます - すべての答えを下落させた。 – Greg

+0

そんなに愚かな...私たちの答えは良い答えです...信頼できる、問題を解決します。 – Zoidberg

3

ページを参照するときに、最後にランダム変数を追加します。たとえば、次のようになります。

document.location.href = 'mypage.html?randomVar=454068934'; 

キャッシュされていないバージョンを保証します。私はjavascript生成guidsを使用することをお勧めします。

1

私が行ったことは、URLにランダムなパラメータを渡すことです。つまり、products.phpを取得する必要がある場合は、products.php?rand = 23443545で呼び出します。 この方法では、キャッシュは干渉しません。

+0

ああ、よく。私が書き始めたとき、答えはありませんでした。遅いタイパー:-( –

+0

LOL、私も、私は約10秒遅すぎた... – Zoidberg

関連する問題