页面缓存策略

本文介绍页面缓存策略的实施方法,包括数据缓存和页面缓存两种方式,以及如何通过Substitution控件实现部分动态更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   页面缓存策略的实施可以很好的解决那些请求多,而变化少的页面或是数据的性能问题,一旦我们为这些内容实施了缓存策略,那末在特定时间以内(开发者设置),如果有新的请求,系统会直接从内存中调出缓存的内容,反馈给client,而不必每次都从数据库重新获得数据,再进行html转换后反馈。
   1.数据缓存:这里指的是利用cache进行数据缓存。关于cache的用法之前已经谈过,通常的做法是:对某些信息insert到cache中,并设置过期时间;每次调用cache的时候,检查是否为null ,如果是null,重新insert,负责直接使用cache中数据即可.当然也经常会采用文件依赖来动态更新cache数据。
   2.页面缓存:
   1)整个页面缓存。只需要在页面头部加入:

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

其中的参数的含义,可以查询MSdn详细了解.这种情况实用于整个页面在一段时间内不会发生变化,比如“本周焦点”,“使用说明”等。但是实际上,我们还要对其中某些部分取消缓存动态显示。
      2)使用Substitution控件实现在整页缓存的页面中部分动态变化。
<asp:Substitution ID="Substitution1" runat="server"  MethodName ="MethodName"/>
这个控件在页面中只是个占位符,动态加载的信息会取代它的位置。其中的MethodName既是动态执行的后台方法名称.比如如果想在这里动态显示当前时间:
 public static string getTime(HttpContext context)
    
{
        
return DateTime.Now.ToString();
    }

注意:这个方法必须是:静态的public,并且只能返回string ,参数为HttpContext.
     当然还能做更多的事情,比如你可以在此检查用户权限,并显示用户信息等。
     3)如果只想使部分页面缓存,采用用户控件就是一个 好办法,因为在这里就可以设置期缓存参数:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="uc1.ascx.cs" Inherits="uc1" %>
<%@ OutputCache VaryByParam ="none" Duration ="10"  %>
UC-DateTime:
<asp:Label ID="Label1" runat="server"  Text=''></asp:Label>

public partial class uc1 : System.Web.UI.UserControl
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        Label1.Text 
= DateTime.Now.ToString();
    }

}

这样,如果把这个控件拖到页面中,那只会缓存uc部分,而不会对其他部分影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值