我是一名網頁設計師,通常設計的企業網站往往不需要更新。所以我想緩存一天的輸出。我怎樣才能做到這一點?如何緩存asp.net網站以獲得更好的性能
此外,任何有關提高慢速服務器上asp.net性能的建議都可以接受。
我是一名網頁設計師,通常設計的企業網站往往不需要更新。所以我想緩存一天的輸出。我怎樣才能做到這一點?如何緩存asp.net網站以獲得更好的性能
此外,任何有關提高慢速服務器上asp.net性能的建議都可以接受。
我建議你遵循這個規則,以改善性能一般
http://developer.yahoo.com/performance/rules.html
如果您安裝了螢火蟲的YSlow,它會爲您驗證所有這些規則。
關於緩存特別是我建議你閱讀本教程。 Cache是一個非常廣泛的話題,這是不容易在10線來說明一切:-)
http://www.mnot.net/cache_docs/#CONTROL
特別談到了ASP NET頁面輸出緩存指令,它的使用非常簡單。在這裏,你有參考
http://msdn.microsoft.com/en-us/library/hdxfb6cy.aspx
但是請考慮到使用的網頁緩存,也爲其他資源如CSS,JS和圖像是非常重要的。
有幾年前我寫的關於asp.net緩存的文章。我相信你能理解的語言:
http://www.csharpnedir.com/articles/read/?id=736&title=ASP.NET%27de
是的,我可以。但是,Asp.Net 4來了,可能大多數事情會再次發生變化:) – 2010-04-13 08:46:19
如果Asp.NET 4.0中有任何改變,它很可能不會影響抽象部分的用戶,也許是底層的。所以你不必擔心它。 – Tarik 2010-04-13 16:45:50
注意,ASP.NET緩存有bug自1.0,可以有效地禁用客戶端緩存。
這就是爲什麼稍後添加HttpCachePolicy.SetOmitVaryStar()
方法作爲解決方法。 開發人員應該使用它,但不幸的是,似乎很少有人知道上述方法。
作爲響應,行爲在ASP.NET 4.0改變,如圖中詳述的ASP.NET 4 Breaking Changes list:
在ASP.NET 1.0,中的錯誤引起的是指定的位置=「ServerAndClient」緩存頁面作爲輸出緩存設置爲在響應中發出Vary:* HTTP標頭。這具有告訴客戶端瀏覽器從不在本地緩存頁面的效果。
在ASP.NET 1.1中添加了System.Web.HttpCachePolicy.SetOmitVaryStar方法,您可以調用該方法來抑制Vary:*頭。選擇此方法是因爲更改發送的HTTP標頭被認爲是當時可能發生的突破性更改。但是,開發人員對ASP.NET中的行爲感到困惑,並且錯誤報告表明開發人員不瞭解現有的SetOmitVaryStar行爲。
在ASP.NET 4中,決定修復根本問題。的不同而不同:* HTTP標頭不再從指定以下指令響應發射:
<的OutputCache位置=「ServerAndClient」%>
結果,SetOmitVaryStar不再需要爲了抑制使用Vary :*標題。
在頁面上的@ OutputCache指令中指定Location =「ServerAndClient」的應用程序中,您現在將看到Location屬性值的名稱隱含的行爲 - 也就是說,頁面可以在瀏覽器中緩存而無需你稱之爲SetOmitVaryStar方法。
如果您的應用程序必須發出頁面有所不同:*,調用AppendHeader方法,如下面的例子:
HttpResponse.AppendHeader( 「和而不同」, 「*」);
或者,您可以將輸出緩存位置屬性的值更改爲「服務器」。
感謝您提供豐富的答案。我將在我的Asp.Net 4應用程序中開始使用緩存。 – 2010-04-14 06:00:52
請不要鏈接到解決方案,因爲它們過時了,就像上面的鏈接 – 2016-11-21 21:02:01