我不确定VaryByHeader="User-Agent"
和VaryByCustom="Browser"
之间的差异。后者是否会创建较少的缓存页面是否正确?或换句话说,如果我只希望缓存不同的浏览器类型(和版本),后者是更好的选择?Outputcache:VaryByHeader =“用户代理”或VaryByCustom =“浏览器”?
Thx任何建议! sl3dg3
我不确定VaryByHeader="User-Agent"
和VaryByCustom="Browser"
之间的差异。后者是否会创建较少的缓存页面是否正确?或换句话说,如果我只希望缓存不同的浏览器类型(和版本),后者是更好的选择?Outputcache:VaryByHeader =“用户代理”或VaryByCustom =“浏览器”?
Thx任何建议! sl3dg3
从MSDN文章 - ASP.NET Caching: Techniques and Best Practices:
为了使每个单独的浏览器高速缓存条目,VaryByCustom是可以被设置为“浏览器”的值。此功能内置于缓存模块中,并将为每个浏览器名称和主要版本插入单独的缓存版本的页面。
我认为这意味着下列useragents都会被认为是IE9.0,并创建一个缓存条目:
但是如果你使用的话,会创建3个条目VaryByHeader="User-Agent"
用户代理可以拥有比浏览器更多的东西,比如操作系统,甚至包括.NET在内的一些插件,所以浏览器猜测应该有较少的缓存页面。
而且,这是最好的做法,推荐此页的内容:
http://msdn.microsoft.com/en-us/library/aa478965.aspx
也可以从这个最佳实践文章中,我可以看到browser
DOES通过浏览器版本而异。那是我唯一的恐惧,而且他们已经覆盖它!
为了使单独的缓存为每个浏览器 条目,VaryByCustom是 可以被设置为“浏览器”的值。 此功能内置于 缓存模块中,并将为每个浏览器名称和主要版本 插入 单独缓存版本的页面 。
<%@ OutputCache Duration="60" VaryByParam="None" VaryByCustom="browser" %>
注意,即使用户代理你不会有网页的那么多的份,所以,我要说这不是你精灵哪一个什么大不了的事。