2009-07-23 4 views
0

私は非常に重いメインページを持つasp.NETアプリケーションを持っています。このメインページの内容は、同じページ上のアクション以外はほとんど変更されません。ブラウザで戻るボタンを使用しているときにリロードを制御するにはどうすればよいですか?

ブラウザで[戻る]ボタンを押すたびにサーバーにアクセスする代わりに、ブラウザからページを取得して、ページを再度表示させるにはどうすればよいですか?

ありがとう、Jonas

+2

ここでは、検索ボックスに「戻るボタン」を入力してください。あなたは約20の答えを見つけるでしょう。 –

答えて

1

短い答えは:できません。

私はあなたがすることができる最も近いあなたのWebページでは、いくつかのHTML Meta tags、などのキャッシングおよび有効期限に関する具体的には、1つの含めることだと思う:あなたがしたら

<META HTTP-EQUIV="EXPIRES" CONTENT=" [some date/time in the future] "> 

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="PUBLIC"> 

をクライアントブラウザに送信されるレンダリングされたWebページにこれらを含めた場合、ユーザーが戻るボタンをクリックすると、別の要求/応答サイクルを呼び出すのではなく、ページの「キャッシュされた」バージョンが表示されるようにしてくださいあなたのwへebサーバーにログインし、Webページの再要求と再レンダリングを実行します。あなたはこれを支配することはありませんが、ブラウザがそれをどのように処理したいかはまったくありません。私はほとんどの現代のブラウザがページを再リクエストすると信じています。

ASP.NETページの再レンダリングを防止するための別のアプローチは、このようなあなたのASP.NET Webページ内の

@OutputCache

ディレクティブを使用して、サーバー側でこれを自分で制御することです:それは最も基本的なだとき、そのページの後続の要求は、ASPになりますように

<%@ OutputCache Duration="600" VaryByParam="None" %> 

は、の@ OutputCacheコントロールは、指定した秒数(上記の例では600)のために、あなたのレンダリングされたASP.NETページをキャッシュします。 NETランティページ全体を再処理して再描画するのではなく、すでにレンダリングされたバージョンのページをユーザーに提供しています。ただし、これはユーザー固有のものではないことに注意してください。 (おそらくあなたは後にしているものに買ってあげる最も近い)ページ出力キャッシュの

さらに詳しい情報:

Page Output Caching
The OutputCache

+0

したがって、ページを区別するすべての引数がURLに含まれている限り、OutputCacheディレクティブを使用すると機能します。私はそれを試してみましょう、ありがとう:) – Joda

+0

@ジョーダ - 必ずしもURLにする必要はありません。それが "GET"リクエストであれば、クエリストリングを介してURLに格納されますが、@OutputCacheディレクティブの "VaryByParam"属性も "POST"リクエストに対しても機能します。また、「ドーナツキャッシュ」を使用してASP.NET Webページの一部のみをキャッシュすることもできます。ここをクリックしてください:http://msdn.microsoft.com/en-us/library/h30h475z.aspx – CraigTP

+0

悲しいことに、コードに大きな変更を加えずに私の問題を解決することはできません。生成されたページを区別することがセッションに保存されます。 しかし、それは私の質問に答えたので、私はそれに感謝:) – Joda

関連する問題