ASP.NET:页面缓存(二)
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