2011-05-15 68 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" %> 

注意,即使用戶代理你不會有網頁的那麼多的份,所以,我要說這不是你精靈哪一個什麼大不了的事。

相關問題