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回传。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
2007-08-16 征服ASP.NET Ajax典型应用 (试读)