我是一名网页设计师,通常设计的企业网站往往不需要更新。所以我想缓存一天的输出。我怎样才能做到这一点?如何缓存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