用参数来控制用户控件的缓存
左直拳
用户控件有个好处就是可以利用缓存,在不实施缓存的页面中实现部分缓存。
可是有时候同一个用户控件,放在不同的页面,又需要它可以表现出不同的样式,或提供不同的功能。
这时跟缓存有冲突吗?
伟大的微软告诉我们,可以在控件缓存设置中声明VaryByControl 或 VaryByParam。
VaryByParam 我还没用过,估计就是根据包含该控件的页面中指定的参数值,如?f=1&u=0之类,针对不同值,缓存不同的版本。
我用的是VaryByControl ,在控件内或包含该控件的页面内放置一个其他控件,如文本框(textbox),VaryByControl=“该控件的ID”,这样这个控件的值不同,用户控件的缓存就不同。
然而直接访问用户控件内部的控件是不方便的,或者也不严谨。可以在用户控件内设置一个属性,通过该属性来间接访问和控制该控件。如:
页面:
<%@ OutputCache Duration="1800" VaryByControl="txtCssStyle" Shared="true"%>
……
<input type="hidden" id="txtCssStyle" runat="server" value="" />
……
<%if (CssStyle != "2")
{ %>
你老豆
<%}else{%>
你老母
<%}%>
代码:
#region 属性
public string CssStyle
{
get
{
return txtCssStyle.Value;
}
set
{
txtCssStyle.Value = (value == "2") ? "2" : "";
}
}
#endregion
调用页面1:
<uc2:DirectShow ID="DirectShow1" runat="server" CssStyle="1" />
调用页面2:
<uc2:DirectShow ID="DirectShow1" runat="server" CssStyle="2" />
这样在第一次打开页面1和页面2时,就各自获得一份缓存,并且按照不同的要求,表现出不同的样式和动作。
分享到:
相关推荐
开发者可以通过调整时间池的参数,灵活控制缓存的生命周期,达到最佳性能和内存使用平衡。 除了以上核心特性,kache还可能包含其他实用功能,如线程安全、内存警告响应机制等。线程安全确保了多线程环境下kache的...
实现方法是在用户控件中使用`<%@ OutputCache>`指令,与页面缓存类似,但只针对该控件。 3. **缓存API(使用Cache对象)** 缓存API提供了更大的灵活性,可以在应用程序的各个层面使用。通过`System.Web.Caching....
这个控件允许开发者创建具有内置网页浏览能力的应用程序,用户可以直接在应用内部访问和交互网页,而无需打开单独的浏览器窗口。下面将详细介绍WebBrowser控件的相关知识点。 一、WebBrowser控件的基本使用 1. ...
19. **旋转控件**:用户旋转来选择角度或数值,适用于参数调整。 20. **标签云控件**:显示大量标签,大小和颜色表示权重,常用于分类或搜索建议。 21. **计时器控件**:定时触发事件,如自动更新、倒计时等。 22...
例如,你可以设置缓存时间、依赖项、VaryBy参数等,以控制缓存行为。例如: ```csharp *" %> ``` 这将缓存页面1小时(3600秒),并且每次参数变化都会生成新的缓存副本。 **应用程序缓存** 应用程序缓存(又称为...
ASP.NET 缓存机制还包括对部分页面的缓存,比如使用`<%@ OutputCacheSection>`指令来缓存用户控件或者页面的一部分。此外,还可以通过`HttpRuntime.Cache`对象来缓存应用程序数据,这允许更灵活的缓存控制,如基于...
除了上述技术,***缓存技术还包括对缓存内容的定制,比如使用VaryByParam属性来根据不同的请求参数返回不同的缓存内容,或者使用VaryByHeader和VaryByCustom属性来自定义缓存内容的变化规则。这些高级特性为开发者...
实现局部页面缓存通常涉及将需要缓存的内容封装到一个用户控件中,并对该用户控件应用缓存策略。例如: ```html ``` 该指令将使该用户控件的输出在120秒内有效。此外,还可以通过代码隐藏文件来设置缓存策略: ```...
除了页面级和用户控件级缓存外,还可以通过`Cache`对象来实现更高级的缓存需求。这种方式更加灵活,可以根据具体场景定制缓存策略。 **常用方法**: - `Add`:添加缓存项。 - `Insert`:插入缓存项。 - `Get`:...
缓存用户控件通常需要在控件的代码-behind文件中使用`OutputCache`特性。 3. 应用程序缓存(Application Cache)则更为灵活,它可以存储任何类型的对象,不仅限于HTML输出。这种缓存适用于存储那些计算成本高或者从...
例如,可以使用`VaryByParam`属性来根据请求参数的变化决定是否更新缓存。 总之,ASP.NET的缓存技术提供了多层次、多策略的解决方案,帮助开发者优化应用程序性能,降低服务器负载。通过合理地运用这些技术,可以...
例如,SqlDataSource的`SelectParameters`属性可以添加参数,这些参数可以在运行时从用户输入或其他控件中获取。 5. **操作数据** 除了简单的数据检索,数据源控件还支持插入、更新和删除操作。例如,GridView配合...
`VaryByControl` 属性允许根据页面上的某个控件的状态来控制缓存行为,例如: ```html ``` 这表示如果 `CategoryDropDownList` 控件的值发生变化,则缓存也会相应地更新。 #### 五、内部缓存(In-Memory Cache) ...
它可能涵盖了如何集成控件到WinForm应用、配置分页参数、响应用户交互事件等方面的内容,有助于快速上手。 项目中的其他文件如下: - `WHC.Pager.WinControlDx`:这可能是自定义分页控件的源代码文件,包含C#类和...
总结,自定义分页在ASP.NET中的实现需要理解数据绑定控件的工作原理,以及如何利用事件和模板来控制用户界面。通过掌握这些技术,你可以创建高效、灵活的分页解决方案,满足各种复杂的应用场景。在实际开发中,结合...
3. 基于参数的缓存:根据URL中的查询字符串或其他参数缓存不同版本的页面。 4. 指定位置缓存:使用`<%@ OutputCache %> `指令在页面的特定部分实现缓存。 三、数据缓存 1. Application Cache:全局缓存,可供整个...
在IT领域,尤其是在Web开发中,日历控件是一种常见的用户界面元素,它允许用户方便地选择日期。本文将深入探讨“常用日历js控件”,特别是“My97DatePickerBeta”这一第三方控件。 “常用日历js控件”指的是...