正 文

ASP.NET缓存策略经验谈


www.7dspace.com  更新日期:2005-11-27 3:55:47  七度空间


根据自定义信息来缓存

使用VaryByCustom属性,可根据你提供的自定义信息来创建一个页的缓存版本。例如,要为每种类型的浏览器创建网页的一个不同版本,可使用以下预处理指令:

<%@ OutputCache

Duration=“300"

VaryByParam="None"

VaryByCustom=“browser”%>

使用VaryByCustom,还可根据应用程序特有的信息来缓存网页。例如,要根据当前用户的部门名称来创建网页的缓存版本,可使用以下预处理指令:

 <%@ OutputCache

    Duration=“300"

    VaryByParam="None"

    VaryByCustom=“department”%>

然后,在用于Global.asax文件的代码隐藏类中,可覆盖GetVaryByCustomString方法,如以下VB.NET代码所示:

    Public Overrides Function GetVaryByCustomString( _

    ByVal context As System.Web.HttpContext, _

    ByVal custom As String) As String

    If custom = "department" Then

    ' return the department for the current user

    End If
    End Function

这里向GetVaryByCustomString方法传递了在预处理指令中使用的自定义值。ASP.NET运行库调用该方法时,你可使用自己的算法,根据输入值来判断当前用户所在的部门,并从方法中返回它。

根据标头信息来缓存

使用VaryByHeader属性,可根据网页接收到的一个或多个HTTP标头来创建一个网页的多个缓存版本。例如,要想根据浏览器的语言来创建和缓存不同的版本,可使用以下预处理指令:

    <%@ OutputCache

    Duration="60"

    VaryByParam="None"

    VaryByHeader="Accept-Language" %>

检查标头

要查看随同特定Web请求发送的各个HTTP标头的值,可打开ASP.NET页的跟踪功能,具体做法是在网页的Page预处理指令中设置trace和traceMode属性。另外,也可通过Visual Studio .NET的属性页来设置。

除了声明性地缓存整个网页,还可使用由Page类揭示的Response对象的Cache属性来程序化地设置一个页的缓存选项。Cache属性揭示了用于网页的HttpCachePolicy对象,可用它在服务器上将缓存时间设为5分钟,如以下C# 代码段所示:

private void Page_Init( object sender, System.EventArgs e )
     {          
     Response.Cache.SetCacheability(HttpCacheability.Server);
     Response.Cache.SetExpires(DateTime.Now.AddSeconds(300));
     Response.Cache.SetValidUntilExpires(True)
     }

4页,页码:[1] [2] [3] [4] 

上一篇:从ASP.NET中发送电邮通知
下一篇:使用委托(Delegate)实现回调通知
作者:周靖 译  来源:开发者在线 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐