缓存之页面部分缓存

介绍

有时缓存整个页面是不现实的,因为页面的某些部分可能在每次请求时都需要变化

        在这种情况下,只能缓存页面的一部分。顾名思义,页面部分缓存是将页面部分内容保存在内存中,
以便更快速响应用户请求,而页面其他部分内容则为动态内容。

        采用页面部分缓存的技术下,经常采用先将那个页面缓存,然后替换页面中不需要缓存的部分的“缓存
后替换”的方法

“缓存后替换”主要采用Substitution控件来实现
        
        使用Substitution控件实现页面部分缓存
        
        数据库中的默写数据可能每时每刻都会发生变化,因此对页面的动态内容也实现缓存,则可能产生数
据不能及时更新的问题

        Substitution控件在整页缓存的前提下,指定页面中免于缓存的部分,那么页面中被缓存的区域只执行
一次,然后从缓存读取,直至该缓存到期

        页面中的动态区域,即Substitution控件指定的部分,在每次请求页面时都会执行 
        
        Substitution控件 有一个重要的属性:MethodName属性所定义的方法。

        用于获取或设置当Substiution控件执行时调用的方法的名称,必须符合以下3条标准
        1.必须被定义为静态方法
        2.必须接受HttpContext类型的参数
        3.必须返回string类型的值
        
        在运行情况下,Substitution控件将会自动调用MethodName属性所定义的方法。
        该方法返回的字符串即为要在页面的内容


代码实例


<%@ OutputCache Duration="5" VaryByParam="none" %>


<form id="form1" runat="server">
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <asp:Substitution ID="Substitution1" runat="server" MethodName="GetTime" />
        <asp:Button ID="Button1" runat="server" Text="刷新" />
    </form>


  protected void Page_Load(object sender, EventArgs e)
        {
            Label1.Text = DateTime.Now.ToString("yyyy--MM--dd--hh--mm--ss");
        }     
        public static String GetTime(HttpContext context)
        {
            return DateTime.Now.ToString();
        }


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值