您的位置:首页 > 编程语言 > ASP

[转]ASP.NET 缓存(八)--根据请求浏览器缓存页的版本

2007-01-30 15:58 344 查看






您可以使用@ OutputCache 指令的 VaryByCustom 属性或 HttpCachePolicy.SetVaryByCustom 方法根据请求该页的浏览器的主版本来改变页输出的版本。该主版本和浏览器类型信息是通过与当前请求关联的 HttpBrowserCapabilities.MajorVersion 属性传递的。您可以通过与该页关联的 Request 对象访问此信息,但是使用 ASP.NET 提供的内置功能将更简单。

根据浏览器类型以声明方式缓存页输出的多个版本

在 .aspx 文件中,将 @OutputCache 指令与必需的 DurationVaryByParam 属性包括在一起。必须将 Duration 属性设置为大于零的任意整数。如果不想使用 VaryByParam 属性提供的功能,则必须将其值设置为 None
@OutputCache 指令体中,包括 VaryByCustom 属性并将其设置为 browser
<%@ OutputCache Duration="10" VaryByParam="None" VaryByCustom="browser" %>


根据自定义字符串以编程方式缓存页响应的多个版本

在该页的代码声明块或代码隐藏类中,使用 Response.Cache 语法为已缓存的页面内容设置到期和可见性策略。您可以分别使用 HttpCachePolicy.SetExpiresHttpCachePolicy.SetCacheability 方法来完成此任务。有关更多信息,请参见设置页缓存的到期时间设置页的可缓存性
在相同的代码中,在 SetVaryByCustom 方法的 custom 参数中指定 browser
[C#]
Response.Cache.SetVaryByCustom("browser");
[Visual Basic]
Response.Cache.SetVaryByCustom("browser")


不管您使用哪种技术,当指定 browser 时,ASP.NET 根据在与当前请求一起传递的 Request.Browser.Type 属性中传递的浏览器名称和主版本信息来自动缓存页输出的版本。通过与该请求关联的 HttpContext 类可以使用该信息。

例如,当 Internet Explorer 5 浏览器请求页时,则将为请求的 Type 属性中传递的字符串值 "IE5" 缓存页的版本。如果是 Netscape Navigator 浏览器、Internet Explorer 的另一个版本或任何其他浏览器请求页,则将页的另一个版本添加到输出缓存中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: