ASP.NET:页面缓存(二)

2017 年 6 月 30 日4340

3、 使用自定义字符串对页的各个版本进行缓存

根据自定义字符串对页输出的多个版本进行缓存

A、 在 ASP.NET 页中包括 @ OutputCache 指令,该指令带有必需的 Duration 和 VaryByParam 属性。必须将 Duration 属性设置为大于零的整数。如果不想使用 VaryByParam 属性提供的功能,则必须将其值设置为“无”。

B、 若要以声明方式设置自定义字符串,请在 @ OutputCache 指令中包括 VaryByCustom 属性,并将该属性设置为您要作为进行不同输出缓存行为的依据的字符串。

下面的指令根据自定义字符串“minorversion”改变页输出。

<%@ OutputCache Duration="10" VaryByParam="None" VaryByCustom="minorversion" %>

1. 若要以编程方式设置自定义字符串,请调用 SetVaryByCustom 方法,并将要使用的自定义字符串传递给它。

下面的代码示例演示如何将自定义字符串设置为“minorversion”。

Response.Cache.SetVaryByCustom("minorversion");

在应用程序的 Global.asax 文件中,重写 GetVaryByCustomString 方法以指定自定义字符串的输出缓存行为。

被重写的方法接受您在 VaryByCustom 属性或 SetVaryByCustom 方法中设置的字符串,作为它的 arg 参数。例如,有些页可能根据请求浏览器的次版本进行缓存。对于这些页,可以将 VaryByCustom 属性设置为“minorversion”。然后,在被重写的 GetVaryByCustomString 方法中,可以检查 arg 参数,并根据 arg 参数的值是否为“minorversion”返回不同的字符串。

下面的代码示例演示一个 Global.asax 文件,其中的 GetVaryByCustomString 方法被重写。

<%@ Application language="C#" %>

<script runat="server">

public override string GetVaryByCustomString(HttpContext context,

string arg)

{

if(arg == "minorversion")

{

return "Version=" +

context.Request.Browser.MinorVersion.ToString();

}

else

{

return "";

}

}

</script>

梅义

本文来源:网奇

责任编辑:王晓易_NE0011

0 0