[转]ASP.NET 缓存(八)--根据请求浏览器缓存页的版本
2007-01-30 15:58
344 查看
您可以使用@ OutputCache 指令的 VaryByCustom 属性或 HttpCachePolicy.SetVaryByCustom 方法根据请求该页的浏览器的主版本来改变页输出的版本。该主版本和浏览器类型信息是通过与当前请求关联的 HttpBrowserCapabilities.MajorVersion 属性传递的。您可以通过与该页关联的 Request 对象访问此信息,但是使用 ASP.NET 提供的内置功能将更简单。
根据浏览器类型以声明方式缓存页输出的多个版本
在 .aspx 文件中,将 @OutputCache 指令与必需的 Duration 和 VaryByParam 属性包括在一起。必须将 Duration 属性设置为大于零的任意整数。如果不想使用 VaryByParam 属性提供的功能,则必须将其值设置为 None。
在 @OutputCache 指令体中,包括 VaryByCustom 属性并将其设置为 browser。
<%@ OutputCache Duration="10" VaryByParam="None" VaryByCustom="browser" %>
根据自定义字符串以编程方式缓存页响应的多个版本
在该页的代码声明块或代码隐藏类中,使用 Response.Cache 语法为已缓存的页面内容设置到期和可见性策略。您可以分别使用 HttpCachePolicy.SetExpires 和 HttpCachePolicy.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 的另一个版本或任何其他浏览器请求页,则将页的另一个版本添加到输出缓存中。
相关文章推荐
- ASP.NET 缓存(七)--根据参数缓存页的版本http://www.opent.cn/?action=show&id=194
- [转]ASP.NET 缓存(六)--根据参数缓存页的版本
- [转]ASP.NET 缓存(七)--根据 HTTP 标头缓存页的版本
- [转]ASP.NET 缓存(九)--根据自定义字符串缓存页的版本
- [转]ASP.NET 缓存(十二)--根据参数缓存用户控件的多个版本
- 根据请求浏览器缓存页的版本
- [转]ASP.NET 缓存(五)--缓存页的多个版本
- ASP.NET缓存:缓存页的多个版本
- ASP.NET缓存 -- 缓存页的多个版本
- ASP.NET 根据 UserAgent 获取浏览器的类型和版本
- [转]ASP.NET 缓存(十一)--缓存用户控件输出的多个版本
- 【转】各版本IIS下ASP.net请求处理过程区别
- ASP.NET 缓存(四)--使用缓存键依赖项缓存页输出http://www.opent.cn/?action=show&id=191
- asp.net 过滤器获取action,controller,参数,浏览器版本等
- 在ASP.NET中清空浏览器客户端的缓存
- 【转载】各版本IIS下ASP.net请求处理过程(2)
- ASP.NET MVC中使用jQuery时的浏览器缓存问题
- asp.net 客户端浏览器缓存的Http头介绍
- ASP.NET性能优化之让浏览器缓存动态网页
- “Asp.Net微型服务器”根据博友们的要求改版了,也出.NET4.0版本了,要更新的博友们赶快下吧