当页的大部分需要随请求动态更新,而页的某一小部分不需要随时更新,可把该部分放在用户控件中,然后设置该用户控件可缓存。
设置用户控件缓存
在用户控件文件(.ascx 文件)的顶部用@ OutputCache指令声明。
<%@ OutputCache Duration="120" VaryByParam="None" %>
也可以在用户控件类上用PartialCaching特性声明。PartialCaching可以带多个参数。
//设置缓存时间为5秒
[PartialCaching(5)]
public partial class CacheControlPage : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
在页面中引用缓存控件时,需通过用户控件ID检查该用户控件是否存在。
页和用户控件都设置了缓存
1、如果页的输出缓存持续时间长于用户控件的输出缓存持续时间,则页的输出缓存持续时间优先。即用户控件的缓存时间与页的缓存时间一样。
2、如果页的输出缓存持续时间比用户控件的输出缓存持续时间短,那么用户控件的缓存时间不会随页的缓存时间改变。