2011-07-26 13 views
6

ほとんどのブラウザは、キャッシュからページをリロードし、ラウンドトリップサーバーの更新を実行しません。 Page_LoadではResponse.AppendHeader( "Cache-Control"、 "no-store")を追加しましたが、Chrome、Firefox、Safariでは機能しません。 ブラウザの戻るボタン(IE、Chrome、Firefox Safari)を押すとページを更新する方法はありますか?ブラウザ(IE、Chrome、Firefox Safari)の戻るボタンを押すと、ページを更新する方法はありますか?

答えて

2

ユーザーは、リフレッシュされたビューではなく、以前に見たものが表示されることを期待しているため、この動作を強制するのは悪い考えです。これがChrome/Firefox/Safariの動作であれば、おそらくユーザーはそのブラウザを選択したのでこの動作を望んでいると考えられます。リフレッシュされたビューが必要な場合は、自分で更新することができます。

これは、ブラウザでJavascriptを使用していることがよくあります。ページの読み込みイベントにフックして、ページが2度目に読み込まれている場合は手動で更新することができます。しかし、クライアントがnoscriptを使用している場合、またはJavascriptをサポートしていない場合、あなたは不運です。また、ユーザーが[戻る]をクリックするたびに新しいページに移動しないように、正しくリロードするように注意してください。

+0

私は同意しますが、いくつかのシナリオではページを手動で更新する必要があります。それはウェブページのビジネスロジックに依存します。ユーザーが戻るボタンを押すと、更新されたバージョンを表示する必要があるデータがあります。 – arlen

+0

問題の解決策になるはずです – arlen

5

これは私が推測しているあなたのC#コードのためのものです。 これは私の提案です。

Response.Cache.SetNoStore(); 

Response.Cache.SetCacheability(HttpCacheability.NoCache); 

Response.AppendHeader("pragma","no-cache"); 

Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1)); 
関連する問題