2009-07-07 45 views
1

我寫了一個接受請求,處理它(通過數據庫查找)並將結果(html)輸出迴響應的HttpModule。 (請注意,HttpModule實際上在請求完成後結束請求,因此沒有正常的ASP.NET請求處理。)使用HttpModule緩存跨請求

由於數據庫查找可能比較昂貴/費時,因此我想將結果在內存中,以便隨後的(相同的)請求可以被提供給相同的內容而不需要去數據庫。

我在哪裏可以存儲(內存中)數據,以便後續調用HttpModule時可用?

+0

與您的主要問題無關,但您爲什麼使用HttpModule而不是HttpHandler?根據你的問題,HttpHandler似乎更適合。 – SolutionYogi 2009-07-08 17:37:34

+0

據我瞭解,HttpHandler通常用於設置自己的文件擴展名(或處理特定的擴展名),而HttpModule將攔截任何和所有請求,這更符合我的要求。 – ObiWanKenobi 2009-07-09 05:26:19

回答

2

您可以將它存儲在Application.Cache中,結果將可用於應用程序。如有必要,請務必每隔一段時間檢查一次「新數據」。

0

與從db中獲取的數據相比,響應大小如何?一旦你有這些數據在內存中渲染怎麼樣?如果渲染不是問題,我只會緩存數據並在每個請求上渲染它。如果渲染需要大量的CPU,那麼你應該緩存完整的響應,並直接從緩存中提供。