【发布时间】:2011-04-13 18:02:02
【问题描述】:
我遇到过有关缓存服务器控件的输出的提示,但尚未找到明确的答案:可以缓存服务器控件的输出(与缓存用户控件的方式相同)吗?
我遇到的建议涉及缓存数据(不是真正的输出缓存),或者建议设置 response.cache 选项。理想情况下,我希望能够将服务器控件拖到页面上并设置与 outputcache 指令同名的属性:
例子:
<cc1:MyCustomControl ID="ctl1" runat="server" CacheDuration="200" VaryByCustom="user" />
我打算深入研究框架以了解输出缓存的实际工作原理,但希望能找到一些信息来帮助我入门。根据我有限的理解,解析器决定是否缓存页面/用户控件。由于不解析服务器控件,因此无法阻止代码执行。我想我可以初始化一个“IsInCache”布尔值,并确保所有方法在执行代码之前检查该变量。这不会完全消除服务器控件的执行,但可以通过避免调用数据库并将数据绑定到控件来充分提高性能。
我仍在使用 .NET 3.5,并且没有太多时间探索 .NET 4.0 中的 OutputCache 提供程序模型。也许最新版的框架有解决方案?
有什么想法吗?
【问题讨论】:
标签: asp.net controls outputcache