2009-04-07 8 views
0

私は非常にデータベースとユーザー集中型のアプリケーションを持っています。ユーザーはナビゲーションのためにブラウザの履歴ボタンに非常に熱心です。asp .netのブラウザ履歴を使って読み込まれたページを扱う最良の方法は?

ユーザーがブラウザの履歴から何かを選んだ場合、ページがリロードされることを絶対に保証できる方法はありますか?

私が定期的に見ることは、ページのコピーが再読み込みされるのではなく、ブラウザキャッシュから表示されることです。

私が試した:これらの

this.Response.Cache.SetNoStore() 
this.Response.Cache.SetNoServerCaching() 
this.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache) 

そして

this.Response.Cache.SetExpires(DateTime.Now.AddSeconds (-1)); 

なし時々ブラウザがとにかく古いキャッシュされたバージョンをロードします、助けていないようにみえます。

答えて

2

あなたはキャッシュを防ぐために、二つの文必要があります。詳細について

Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache); // For IE Response.Cache.SetNoStore(); // For Firefox

を参照してください。

http://blog.httpwatch.com/2008/10/15/two-important-differences-between-firefox-and-ie-caching/

また、戻るボタンが正しく動作するように、常にリダイレクトのPOSTに従ってください。

http://blog.httpwatch.com/2007/10/03/60-of-web-users-can%E2%80%99t-be-wrong-%E2%80%93-don%E2%80%99t-break-the-back-button/

1

古いデータが表示される危険性はありますか?ユーザーが「古い」データとやりとりする、または変更しようとする恐れがある場合は、ユーザーが提出したときに、サーバー側コードが「古いデータ」またはそのデータを処理する要求を処理できないようにする必要があります。もう有効ではありませんか?

クライアントがページのコピーを保存してしまうことを防ぐのではなく、サーバー側でユーザーが対話できないようなデータの「偶発的な」更新を防止する方がずっと簡単ですブラウザの履歴またはキャッシュに保存されます。あなたは本当に後者を完全に提示することはできません。

言い換えれば、これらの種類のバグが、サイト側と対話するすべてのブラウザが尊重したいと思っているよりも、サーバー側のコードである制御権を持つアプリケーションには入らないようにする方がよいキャッシュの見出し、すべての単一ブラウザがHTTP/HTML標準に準拠していることなど。

+0

古いデータの編集には問題ありません。簡単に処理できます。ユーザーが変更内容がページに表示されないという混乱を招いています。 – ilivewithian

0

キャッシュについてはあまり心配しません。

ASP.Netの問題点は、ポストバックイベントとViewStateは、同じURLを同じ方法で2回レンダリングしないことを意味します。代わりに、アプリの現在の「状態」を考慮に入れます。したがって、ユーザーが戻るボタンを押すと、ビューステートやその他のポストバックデータがこの方向に利用できないため、期待していたのと同じ方法でページが表示されないことがあります。

戻るボタンを有効にするには、ViewStateをオフにして、Response.Redirectを使用してすべてのサーバーイベントを新しいURLに処理する必要があります。

1

ブラウザのキャッシュが問題ですか?

Response.Cache.SetCacheability(HttpCacheability.NoCache) 

別のブラウザを試しましたか、またはすべてのブラウザが影響を受けていますか?

2

3.5フレームワークを使用している場合は、ヒストリサーバーコントロールを使用して、ブラウザ履歴に何が入るかを管理できます。

Video: How Do I Use the ASP.NET history control?
Back Button Support for ASP.NET Update Panels
ASP.NET: Managing Browser History with AJAX and UpdatePanels
Tip/Trick: Enabling Back/Forward-Button Support for ASP.NET AJAX UpdatePanel

アップデート:彼はコメントをintに述べたように、あなたはバージョン2.0を使用している。ここ

は、ビデオと、それを使用してのヒントをいくつかのブログの記事でありますフレームワークのここでは、.NET 2.0でこのコントロールを使用する方法を説明するリンクです: Using ASP.NET 3.5 History Control with ASP.NET 2.0

+0

私はasp .net 2.0を使用しています – ilivewithian

+0

2.0フレームワークでこれを行う方法を説明するために私の答えを更新しました。 – JohnFx

関連する問題