我不確定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" %>
注意,即使用戶代理你不會有網頁的那麼多的份,所以,我要說這不是你精靈哪一個什麼大不了的事。