2009-07-07 10 views
1

リクエストを受け取り、処理して(データベース参照で)処理し、結果(html)を応答に返すHttpModuleを作成しました。 (HttpModuleは要求が完了した後で実際に要求を終了するので、要求の通常のASP.NET処理はありません)。HttpModuleで要求をキャッシュする

データベースの参照には高価で時間がかかることがありますので、結果としてメモリーが得られ、後続の(同一の)要求は、データベースに行くことなく同じコンテンツを提供できるようになります。

HttpModuleの後続の呼び出しで使用できるように(メモリ内の)データはどこに保存できますか?

+0

主な質問とは関係ありませんが、なぜHttpHandlerの代わりにHttpModuleを使用していますか?あなたの質問に基づいて、それはHttpHandlerがより良いフィット感があるようです。 – SolutionYogi

+0

私が理解している限り、HttpHandlerは独自のファイル拡張子を設定する(または特定の拡張子を処理する)ときにHttpHandlerを使用しますが、HttpModuleはすべての要求を傍受します。 – ObiWanKenobi

答えて

2

Application.Cacheに保存すると、結果がアプリケーション全体で利用可能になります。必ず「新しいデータ」をチェックし、必要に応じて確認してください。

+0

さらに良い=キャッシュ依存関係を作成する。 –

+0

私の答えを編集したかっただけです。それに私を打つ。 ASP.NET 2.0とSQL 2005以来、データのための一種の「プッシュ」依存関係を作成することが可能です。 – Colin

0

dbから取得したデータと比較したレスポンスサイズはどのくらいですか?そのデータをメモリに保存してレンダリングするとどうなりますか?レンダリングが問題でない場合は、データをキャッシュして、各リクエストでレンダリングします。レンダリングで多くのCPUが必要な場合は、完全な応答をキャッシュし、キャッシュから直接応答する必要があります。

関連する問題