缓存之页面部分缓存

来源:互联网 发布:14岁 麻省理工 知乎 编辑:程序博客网 时间:2024/04/30 10:29

介绍

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

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

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

“缓存后替换”主要采用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 0