繁体   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