【问题标题】:HTML compressionHTML 压缩
【发布时间】:2011-10-13 08:00:00
【问题描述】:

大多数网页都充满了大量的空格和其他无用字符,从而导致客户端和服务器的带宽浪费。对于包含在级别定义的复杂表格结构和 CSS 样式的大页面尤其如此。在发布之前预处理所有 HTML 文件似乎是一种好习惯,因为这将节省大量带宽,而且在我居住的地方,带宽并不便宜。

不用说,优化不应该以任何方式影响页面的外观(根据 HTML 标准),或者破坏任何嵌入的 Javascript 或后端 ASP 代码等。

我想执行的一些功能是:

  • 删除所有空格和回车。解析器需要足够聪明,才能不从字符串文字中去除空格。移除 HTML 元素或属性之间的空格大多是安全的,但 iirc 浏览器会呈现 div 或 span 标签之间的单个空格,因此不应去除这些空格。
  • 从 HTML 和客户端脚本中删除所有 cmets
  • 删除多余的属性值。例如<option selected="selected"> 可以替换为 <option selected>

好像这还不够,我还想进一步压缩 CSS 样式。具有大表的页面通常包含大量代码,如下所示:<td style="TdInnerStyleBlaBlaBla">。如果样式标签很小,页面会更小。例如<td style="x">。为此,最好有一个工具可以将所有样式重命名为由尽可能少的字符组成的标识符。如果有太多样式无法用一组允许的单个数字标识符表示,则有必要使用更大的标识符,为使用最多的样式优先使用较小的标识符。

理论上,构建一个软件来完成这一切应该很容易,因为有许多 XML 解析器可以用来完成繁重的工作。肯定有人已经创建了一个工具,它可以做所有这些事情,并且足够可靠,可以用于现实生活中的项目。这里有没有人有这样做的经验?

【问题讨论】:

  • 标准答案:除非您是 Google,否则不要打扰。 Zip 压缩您的回复将为您节省大量流量 - 通常就足够了。
  • +1 Pekka 所说的。对于 HTML,gzip 胜过缩小,缩小+gzip 是边际收益。
  • 请参阅上面我建议的问题。只需在 Internet 上搜索“HTML 最小化器”
  • 我认为您可能会通过其中一些优化来破坏 JScript 和 DOM 处理代码。

标签: html parsing optimization


【解决方案1】:

您可能使用的术语是“缩小”或“缩小”。

这与您可能会发现有用的现有对话非常相似:

https://stackoverflow.com/questions/728260/html-minification

此外,根据您使用的网络服务器和用于查看您网站的浏览器,您的服务器很可能已经在压缩数据,而您无需执行任何操作:

http://en.wikipedia.org/wiki/HTTP_compression

【讨论】:

    【解决方案2】:

    你的3点其实叫做“最小化HTML/JS/CSS”

    可以看看这些:

    我在我的个人分布式爬虫中也做了一些压缩 HTML/JS/CSS。使用 gzip、bzip2 或 7zip

    • gzip = 最快,~12-25% 原始文件大小
    • bzip2 = 正常,~10-20% 原始文件大小
    • 7zip = 慢,原始文件大小约为 7-15%

    【讨论】:

    • 我要压缩的页面都是动态生成的,所以服务器会在每次请求时压缩页面。这最终可能会导致性能损失,特别是因为我们在虚拟桌面环境中工作。我们的远程桌面软件可能已经在运行压缩,所以再想一想,我认为我们毕竟不会节省互联网流量。
    猜你喜欢
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 2010-12-28
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多