【问题标题】:How to reduce size of html rendered from ASP.net?如何减小从 ASP.net 呈现的 html 的大小?
【发布时间】:2011-02-21 02:27:18
【问题描述】:

我正在 asp.net 中开发一个时事通讯,它将发送给大量用户,所以我可以减少的每一千字节将有助于带宽消耗的使用,我所做的直到知道是写aspx 不包括标签之间的一些空格,在渲染之前,我已将一些控件 ID 重命名为“-”以节省更多空间。 所以现在,该文件有 50kb。我需要一个 25 Kb 的文件。

谁能教我其他节省空间的方法?

ps.:我使用 3 个 div 和一些数据,以及 2 个重复器,一个在另一个内部,为我生成一个包含一些数据的表。

编辑:我已禁用视图状态,并删除了不必要的 div,我将尝试验证是否在 IIS 中启用了 gzip。

提前致谢

【问题讨论】:

    标签: c# .net asp.net html newsletter


    【解决方案1】:

    如果您想要完全控制,请不要使用 aspx 页面。制作一个通用处理程序,然后您可以完全控制生成的每个字节。

    不使用中继器,只需遍历数据集并输出表或跨度或其他东西。虽然,我不得不说,中继器也很容易控制精确的输出。

    查看您生成的 html,看看您是否可以找出任何明显的罪魁祸首。

    【讨论】:

      【解决方案2】:

      这可能不会节省太多,但您也可以通过认真考虑是否将 DIV 用于样式目的来减少标记,而直接对内容进行样式设置将获得相同的结果。

      例如,

      
      <div class="sidebar">
        <ul>
          <li>Lorem</li>
        </ul>
      </div>
      

      在大多数情况下,您可以通过直接设置 UL 样式获得相同的结果:

      
        <ul class="sidebar">
          <li>Lorem</li>
        </ul>
      

      但在您的情况下,中继器可能是膨胀的主要来源。确保为它们使用带有干净 HTML 的自定义模板,而不是依赖开箱即用的渲染,这可能会非常混乱。

      就像其他人发布的一样,关闭任何您不需要的控件的视图状态 - 仅此而已。

      【讨论】:

        【解决方案3】:

        您可能想查看 IIS 压缩(它使用 gzip IIRC)。这应该会降低文件大小。

        同时缩小 javascript/css(我已经这样做了,并且看到 js/css 文件大小减少了 40%),这里是一本书/网站的链接,它讨论了你可以做的其他事情:http://developer.yahoo.com/performance/rules.html ,书名是《高性能网站》,ISBN:978-0-596-52930-7

        【讨论】:

          【解决方案4】:

          确保启用 HTTP 压缩。这将有助于减少 HTML 的数量,但启用 HTTP 压缩将带来比您可能看到的边际改进更多的效果。

          根据您的 IIS 版本,启用压缩的方法有多种。例如,在 IIS 6.0 中,您可以手动编辑 metabase.xml 或运行:

          cscript adsutil.vbs set w3svc/filters/compression/parameters/HcDoDynamicCompression true 
          

          您可以使用类似 https://addons.mozilla.org/en-US/firefox/addon/3829/ Live HTTP Headers 的 Firefox 来检查 HTTP 标头以验证是否启用了压缩。检查“内容编码:gzip”的标题。

          【讨论】:

          • 很好——我没有那样读这个问题,但你的方式完全有道理。我在他通过电子邮件发送时事通讯时阅读它,而不是时事通讯的链接。然后我试图弄清楚服务器上的压缩与生成的放入电子邮件正文的 html 有什么关系。 :)
          • 绝对。这是许多站点完全忽略的一种方法,因此会消耗大量 CPU 和数据库时间,一遍又一遍地生成相同的视图......
          • 每个用户会看到不同的时事通讯,具体取决于所做的配置,所以我不能只生成一个页面。
          【解决方案5】:

          如果您使用 ASP.Net Web 表单,我建议您阅读这篇文章 - 说明如何正确利用 ViewState:

          http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx

          【讨论】:

          • 事实上,我真的不需要时事通讯中的视图状态,所以我禁用了它。谢谢你
          【解决方案6】:

          如果您正在使用任何视图状态并优化图像文件,您可以禁用。

          【讨论】:

          猜你喜欢
          • 2018-05-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-10-16
          • 2021-10-26
          • 2011-09-03
          • 2016-01-17
          • 2011-09-09
          相关资源
          最近更新 更多