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