如何减少从ASP.net渲染的HTML的大小?

时间:2010-05-18 20:35:36

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

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

任何人都可以教我任何其他方式来节省更多空间吗?

ps。:我使用3个div和一些数据,2个中继,一个在另一个内,为我生成一个包含一些数据的表。

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

提前致谢

6 个答案:

答案 0 :(得分:5)

确保已启用HTTP压缩。它将有助于减少HTML的数量,但启用HTTP压缩将提供的不仅仅是您可能会看到的边际改进。

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

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

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

答案 1 :(得分:4)

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

不是使用Repeater,而是循环遍历数据集并输出表格或跨度等。虽然,我不得不说,中继器也很容易控制输出的精确度。

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

答案 2 :(得分:2)

如果您使用的话,可以禁用视图状态并优化图像文件。

答案 3 :(得分:1)

如果您使用ASP.Net Web表单,我建议您阅读本文 - 解释如何正确使用ViewState:

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

答案 4 :(得分:1)

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

同时缩小javascript / css(我已经完成了这项工作,并且看到js / css文件大小减少了40%),这里有一个书籍/网站的链接,可以讨论你可以做的其他事情:{{3本书的标题是“高性能网站”,ISBN:978-0-596-52930-7

答案 5 :(得分:1)

它可能无法节省大量成本,但您也可以通过认真考虑是否在直接样式化内容时使用DIV进行样式设置来减少标记。

例如,


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

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


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

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

就像其他人发布的一样,关闭viewstate以获取你不需要它的任何控件 - 这只是垃圾的TON。