ASP.NET网站性能提升的几个方法
翻译出处:http://www.codeproject.com/KB/aspnet/aspnetPerformance.aspx
1. HTTP 压缩
HTTP 压缩通常用于压缩从服务端返回的页面内容。它压缩HTTP请求和响应,这个会是巨大的性能提升。我的项目是基于Window Server 2003开发的,可以参考这篇文章.
2. 让ViewState失效
ViewState允许页面状态保持在客户端,它不区别于Cookie或者服务器内存。View State保存数据在一个隐藏域中。可以肯定的是,这个是很很强大的特性,但它的缺点使页面大小和在服务器中的内存增大。
所以,我们要避免使用ViewState,特别是,DataGrid等控件,ViewState加载所有的表格数据的状态。去掉它,可以使页面的大小缩小。
3. 改变Web.config文件
a. 用页面缓存:
这将在一定的时间段保存你的页面,页面能够更快得地加载出来。但要记住,如果你的页面数据经常更新,就不适合使用页面缓存。
<caching> <outputCacheSettings> <outputCacheProfiles> <add name="cached" duration="600" varyByParam="none" enabled="true"/> </outputCacheProfiles> </outputCacheSettings> </caching>
b. 从web.config移除不必要的httpModule:
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <remove name="WindowsAuthentication" /> <remove name="PassportAuthentication" /> <remove name="AnonymousIdentification" /> <remove name="UrlAuthorization" /> <remove name="FileAuthorization" />
c. 关闭跟踪:
<trace enabled="false" pageOutput="false" />
d. 当使用user membership的时候,使profiles保存自动失效:
<profile enabled="true" automaticSaveEnabled="false" />
e. 设置调试状态为false:
<compilation debug="false">
4. 提高Cache Dependency:
三种方式的cache dependencies可以使用:
1. 在传统缓存项的caching dependencies;
2. 在文件上的caching dependencies;
3. 在SQL上的caching dependecies;
你应该选择最好的策略适应你的应用程序,这儿有一个在文件上cache dependency的例子可以参考下。
5. 优化CSS样式表:
清理CSS样式表是非常重要的,移除没用的代码能够提升页面加载的效率,在工程中,可以使用工具来压缩样式表的大小,可以使用CSS在线压缩工具来压缩css代码的大小。
6. 优化Javascript代码:
可以使用JS在线压缩工具来优化Javascript代码。
7. JS和CSS文件的位置:
将CSS文件尽量放在页面的头部,将JS文件尽量放在页面的底部。
8. 如果可能,将server.transfer()代替response.redirect()
这样将更快地加载页面,因为它只是在Post表单,而不用刷新整个页面。
9. 在验证方面,使用客户端脚本:
可以避免postback回传。