【问题标题】:How to decrease the page load time in ASP.NET application?如何减少 ASP.NET 应用程序中的页面加载时间?
【发布时间】:2011-03-10 02:08:05
【问题描述】:

如何减少 ASP.NET 应用程序的页面加载时间?与数据库交互时应该注意什么,特别是什么

例如

  1. 明智地使用视图状态
  2. 部署应用时在web.config中设置

【问题讨论】:

标签: asp.net .net load-time


【解决方案1】:

以下信息用于减少页面加载时间

  1. 在托管网站时删除不需要的行空间。
  2. 将所有内联 css 文件合并到一个通用 .css 文件中。
  3. 将所有内联 Java 脚本合并到一个通用 .js 文件中,并在需要时添加对该文件的引用。
  4. 使用压缩 Javascript 和 CSS 文件。
  5. 尝试在您的网页中使用较少尺寸的图片。

【讨论】:

    【解决方案2】:

    始终使用请求在应用程序中加载概念。尽量避免页面加载时不必要的数据库命中。如果页面加载时有大量数据,则可以使用 Ajax 请求调用。

    【讨论】:

      【解决方案3】:
      1. 永远不要在生产环境中在调试配置下部署 asp.net 应用程序。了解 here scottgu 对此有何评论。

      2. 使用无 Cookie 域来提供静态资源,如图像、脚本、样式等。每个客户端请求都与一大堆 cookie 一起发送,服务时不需要 cookie图片或脚本。因此,将这些资源托管在无 cookie 的域上。

      3. 从服务器缩小脚本、样式表和 HTML 响应。删除不必要的换行符和空格可以改善加载时间和带宽优化。

      您会here那里找到许多提示。

      【讨论】:

        【解决方案4】:
        • 使用 MS Visual Studio 2010 这有助于 你在优化你的 .NET 代码 更好的性能。
        • CSS sprite 在您使用时非常有用 背景中有很多图片。
        • 压缩 JavaScript 的内容 使用 gZip 压缩器和 CSS 的文件 通过删除空格和文件 厘米。
        • 避免使用 HTML cmets 通过“查看”对客户端可见 源”选项在浏览器中,其中 也会减小文件大小。
        • 把大部分不必要的 页面底部的 JavaScript。 为了获得更好的性能dynamically load the JavaScript references 之后 在您的页面上加载内容。

        【讨论】:

          【解决方案5】:

          80% 的最终用户响应时间花费在前端。大部分时间都花在下载页面中的所有组件上:图像、样式表、脚本、Flash 等。

          http://developer.yahoo.com/performance/rules.html

          我并不是建议忽略已经提供的答案中的视图状态和数据库缓存建议。我指出,我发现更简单的更改是在 IIS 中打开 GZip 压缩,在静态元素上设置过期标头以减少服务器请求,使用诸如 smush.it 之类的工具优化图像

          使用Zoompf 运行您网站的报告以获得非常详细的报告,其中包含估计影响和易于实施评级。

          【讨论】:

            【解决方案6】:

            TechEd 2010 North America 的一些关键“要点”:

            • 缓存是性能的关键,请仔细考虑您的缓存策略。
            • 如果可能,禁用视图状态。
            • 部署应用时在 web.config 中设置 <compilation debug=”false">
            • 考虑图形和其他静态内容的 CDN 或子域。
            • 将 javascript 放在页面底部,CSS 放在顶部。
            • 为图标和其他“小”图形考虑 CSS 精灵。

            您可以在这里在线观看课程,强烈推荐:

            【解决方案7】:

            在进行任何优化工作之前,最重要的是指出需要优化的内容。可以在此处发布数以千计的优化技巧,因此最好找到您的性能问题,并提出更具体的问题以帮助优化您需要的内容。您可以优化 Web 应用程序的 3 个部分:

            服务器端性能:指出最大的瓶颈(分析器是一个简单的选择)。优化瓶颈。优化较小的问题,或者在没有测量时间量的情况下进行优化,当大问题仍然存在时,可能会浪费时间。

            客户端性能:从 yslow 或 google page speed 等工具中获取建议。

            带宽:在尽可能少的请求中向用户发送尽可能少的数据。

            【讨论】:

              【解决方案8】:

              您总是可以触发异步数据库操作并异步更新页面 - 想到 AJAX 更新面板。

              还有页面输出缓存,如果页面大部分是静态的,这很有用。它也可以基于参数完成,因此您可能会缓存为给定数据库搜索创建的页面。

              您还可以采用过度的方法并减少页面的“冗长”。我曾经在产品页面上通过缩小元素名称等来获得乐趣,设法减少了 50% 以上的页面大小,但这使得标记完全不可读,哈哈

              沿着同样的路线,将缩减工具应用于 css/javascript 文件 - 如果您进行压缩,也可以合并它们,因为压缩比更少的大文件更有效。

              【讨论】:

                【解决方案9】:
                • 缓存尽可能多的数据库读取
                • 减少/禁用视图状态
                • 少做(如果可能的话)

                【讨论】:

                  【解决方案10】:
                  • 尽量减少 ViewState 或将其保留在服务器上
                  • 通过使用用户控件的输出缓存来缓存页面上的数据或部分
                  • 尽可能多地捆绑脚本和 css

                  始终在重构某些内容后进行衡量,看看它是否有所作为。

                  也请在此处查看more information

                  Grz,克里斯。

                  【讨论】:

                    【解决方案11】:

                    在 MSDN 上有一篇有趣的文章,其中包含优化 ASP.Net 应用程序的 10 个技巧。它在

                    http://msdn.microsoft.com/en-us/magazine/cc163854.aspx

                    【讨论】: