65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET 网站性能优化

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.88/5 (19投票s)

2009年5月26日

CPOL

3分钟阅读

viewsIcon

124397

提高 ASP.NET 应用程序速度的技巧。

引言

最近,我开发了一个 Web 应用程序,它调用许多服务,并在每个页面中从数据库加载大量数据,并在后台进行大量计算,因此网站变得更慢。然后,我开始在 Google 上搜索以找到一个好的解决方案,并获得了一些真正的好主意来提高我的 Web 应用程序的性能。在这篇文章中,我将分享我在应用程序中应用的提高性能的技巧,并且现在效果非常好。

我所做的事情

1. HTTP 压缩

HTTP 压缩用于压缩来自服务器端的页面内容。它压缩 HTTP 请求和响应,因此是性能的巨大改进。我的项目托管在 Windows Server 2003 中,我在阅读了这篇文章后实现了 HTTP 压缩。

2. 禁用不必要的 ViewState

ViewState 允许页面状态持久保存在客户端,并且不需要 cookie 或服务器内存。 ViewState 将数据保存在页面内的隐藏输入字段中。 当然,这是一个强大的功能,但缺点是它会增加页面大小和服务器中的内存分配。

因此,我们应该避免在不必要的地方使用 ViewState。 特别是,对于 DataGrid 控件,我们应该避免 ViewState,因为它会将所有网格数据加载到页面状态中。

在我的应用程序中,我为大多数不需要 ViewState 的控件和页面禁用了 ViewState。这使得页面大小更小。

3. Web.Config 文件中的更改

  1. 使用页面缓存
  2. 这将仅在一定时间内保存您的页面,并且页面加载速度会更快。 但是,请记住,如果您的页面数据频繁更改,则不建议使用页面缓存。

    <caching>
    <outputCacheSettings>
        <outputCacheProfiles>
            <add name="cached" duration="600" 
                varyByParam="none" enabled="true"/>
        </outputCacheProfiles>
    </outputCacheSettings>
    </caching>
  3. web.config 中删除不必要的 httpModule
  4. <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" />
  5. 关闭跟踪
  6. <trace enabled="false" pageOutput="false" />
  7. 由于我使用了成员资格,我禁用了配置文件的自动保存
  8. <profile enabled="true" automaticSaveEnabled="false" />
  9. 设置 debug=false
  10. <compilation debug="false">

4. 实现缓存依赖项

有三种类型的缓存依赖项可用

  1. 缓存项的缓存依赖项
  2. 文件的缓存依赖项
  3. SQL 的缓存依赖项

对于我的项目,我使用了文件的缓存依赖项。 对于您的项目,您可以选择使用基于最适合您的应用程序的依赖项。这里是一个很好的文件缓存依赖项的例子。

5. 优化样式表

清理样式表并删除样式表中不必要的代码非常重要,因为它会增加加载时间。 从样式表中删除所有不必要的类,并尝试使用单个 CSS 文件。 在我的项目中,我使用了一个工具来减小样式表的大小。 我使用此服务将我的 CSS 文件大小减少了 20%。

6. 优化 JavaScript

我使用此服务优化我的 JavaScript。

7. JS 和 CSS 文件位置

根据一些好文章的建议,我将 CSS 文件声明放在主页面的顶部。 建议在页面顶部调用 CSS 文件,因为页面渲染会逐渐变得高效。

我将 JavaScript 文件链接放在主母版的底部。 如果我们将脚本放在页面的顶部,那么它会导致不必要的高加载时间。

8. server.transfer() 代替 response.redirect()

在可能的情况下,我使用 server.transfer() 代替 response.redirect()。 它加载页面的速度更快,因为它只发布表单,而不是完整的页面。

9. 用于验证的客户端脚本

对于页面验证,我使用客户端验证而不是回发。 这样,我减少了页面中的往返次数。

关注点

还有很多事情可以做来提高 Web 应用程序的性能。 下面是一些非常好的文章的链接

历史

  • 2009 年 5 月 26 日:第一个版本。

我计划将来添加更多性能调整技巧。

© . All rights reserved.