2011-05-15 60 views

回答

15

从MSDN文章 - ASP.NET Caching: Techniques and Best Practices

为了使每个单独的浏览器高速缓存条目,VaryByCustom是可以被设置为“浏览器”的值。此功能内置于缓存模块中,并将为每个浏览器名称和主要版本插入单独的缓存版本的页面。

我认为这意味着下列useragents都会被认为是IE9.0,并创建一个缓存条目:

  • 的Mozilla/5.0(窗口; U; MSIE 9.0; Windows NT的9.0; EN-US))
  • 的Mozilla/5.0(窗口; U; MSIE 9.0; Windows NT的9.0; EN-US)
  • 的Mozilla/5.0(兼容; MSIE 9.0; Windows NT的7.1;三叉戟/ 5.0)

但是如果你使用的话,会创建3个条目VaryByHeader="User-Agent"

3

用户代理可以拥有比浏览器更多的东西,比如操作系统,甚至包括.NET在内的一些插件,所以浏览器猜测应该有较少的缓存页面。

而且,这是最好的做法,推荐此页的内容:

http://msdn.microsoft.com/en-us/library/aa478965.aspx

也可以从这个最佳实践文章中,我可以看到browser DOES通过浏览器版本而异。那是我唯一的恐惧,而且他们已经覆盖它!

为了使单独的缓存为每个浏览器 条目,VaryByCustom是 可以被设置为“浏览器”的值。 此功能内置于 缓存模块中,并将为每个浏览器名称和主要版本 插入 单独缓存版本的页面 。

<%@ OutputCache Duration="60" VaryByParam="None" VaryByCustom="browser" %> 

注意,即使用户代理你不会有网页的那么多的份,所以,我要说这不是你精灵哪一个什么大不了的事。

相关问题