簡體   English   中英

在客戶端上緩存ASP.NET用戶控件

[英]Caching ASP.NET User Controls on the Client

我想知道是否可以在客戶端上緩存ASP.NET UserControl。

我有一個查詢數據庫並呈現GridView的用戶控件。 它必須在客戶端上,因為查詢結果因用戶而異(根據User.Identity.Name)。 該頁面用於Intranet。

任何幫助將非常感激!

提前致謝,

PS:默認情況下,用戶控件在哪里緩存? 服務器,代理?

代理服務器和客戶端只能緩存靜態數據。 IIS必須始終為動態數據提供服務,盡管您可以通過將數據存儲在內存中的高速緩存中而不是為每個請求查詢數據庫來提高效率。

關於ASP.NET,術語“緩存”通常是指將數據存儲在服務器上的內存中。 您可以通過使用鍵值(例如User.Identity.Name)為不同的用戶提供不同的數據。 如果要在服務器上緩存用戶的結果,則可以使用Cache.Add將用戶ID作為鍵,將數據集(或其他DTO)添加到Cache字典中。 如果所討論的數據不經常更改,那么這可能是一種服務於用戶特定數據的有效方法。 如果數據確實經常更改,則可以使用Cache對象的回調機制在(例如)文件更改時使高速緩存項過期。

IIS / ASP.NET還支持頁面緩存和基於查詢字符串的頁面的部分緩存。 這些由.aspx頁中的頁面指令控制,由web.config每個站點控制。

用戶控件總是緩存在Web服務器上,而不是緩存在代理服務器上或Web瀏覽器中。

但是,為了滿足您的意圖,您可以基於OutputCache指令的VaryBy屬性來呈現不同的緩存結果。 這些包括:

  • VaryByParam
  • VaryByControl
  • VaryByCustom

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM