HTML缩小?

Pau*_*ulo 99 html minify

是否有一个在线工具,我们可以输入页面的HTML源代码并缩小代码?

我会为aspx文件这样做,因为让web服务器gzip它们不是一个好主意...

小智 63

也许尝试HTML Compressor,这是一个前后表,显示它可以做什么(包括Stack Overflow本身):

对不起,markdown没有表格的概念

它提供了许多选择,可以优化您的页面,包括脚本最小化(ompressor,Google Closure Compiler,您自己的压缩器),它是安全的.默认选项设置非常保守,因此您可以从中开始并尝试启用更具侵略性的选项.

该项目记录得非常好并得到了支持.


Zac*_*son 58

不要这样做.或者更确切地说,如果您坚持使用它,请在完成任何更重要的站点优化后再执行此操作.很可能这项工作的成本/收益可以忽略不计,特别是如果您计划手动使用在线工具处理每个页面.

使用YSlowPage Speed来确定优化页面的真正需要.我的猜测是减少HTML的字节不会是您网站的最大问题.压缩,缓存管理,图像优化等更有可能对整个网站的性能产生更大的影响.这些工具将向您展示最大的问题 - 如果您已经处理了所有这些问题,并且仍然发现HTML缩小会产生重大影响,那就去做吧.

(如果您确定要使用它,并且使用Apache httpd,您可以考虑使用mod_pagespeed并启用一些选项来减少空格等,但要注意风险.)

  • 实际上不是原始问题的答案:( (26认同)
  • 如果使用自动美化易于阅读缩小代码,优化会出现什么问题? (25认同)
  • 它可能不是最大的问题 - 但是如果从dev开发到qa或prod时通过缩小的正则表达集运行标记是一个微不足道的过程,那么为什么你不想发送较小的标记文档呢? (12认同)
  • @Will,几乎可以肯定*不是*通过缩小正则表达式来运行HTML的一个简单过程,甚至使用适当的解析器它可能不是微不足道或快速的.更重要的是,与JS/CSS缩小不同,HTML缩小不会是无损的:任何标记都可以被设置为`white-space:pre`,缩小会破坏预格式化的文本. (7认同)
  • @eyelidlessness - 我目前有数千页的页面由正则表达式在服务之前缩小.该功能不是系统的复杂或昂贵的部分....另一方面,如果你想解析计算样式以避免缩小用`white-space:pre`设置样式的元素,那么是的,缩小HTML会更复杂.但是,我不清楚为什么有人想要使用white-space:pre而不是使用`pre`或`code`元素. (3认同)

Sal*_*ali 34

以下是对您的问题的简短回答:您应该缩小HTML,CSS,JS.有一个易于使用的工具,称为grunt.它允许您自动执行许多任务.其中JS,CSS,HTML缩小,文件连结其他许多人.

这里写的答案非常过时,甚至有时没有意义.从2009年开始,很多事情发生了变化,所以我会尽力回答这个问题.

简短的回答 - 你一定要缩小HTML.它今天微不足道,并提供大约5%的加速.对于更长的答案阅读整个答案

在过去,人们手动缩小css/js(通过运行一些特定的工具来缩小它).这个过程很难实现自动化,并且肯定需要一些技巧.知道现在很多高级站点都没有使用gzip(这是微不足道的),人们不愿意缩小html是可以理解的.

那么为什么人们缩小js,而不是html?当你缩小JS时,你会做以下事情:

  • 删除评论
  • 删除空格(制表符,空格,换行符)
  • 将长名称改为短名称(var isUserLoggedInvar a)

即使在过去,这也给了很多改善.但是在html中,你无法简短地改变长名,在那段时间里几乎没有什么可评论的.所以唯一剩下的就是删除空格和换行符.这只会带来少量改进.

这里写的一个错误的论点是,因为内容是用gzip提供的,所以缩小是没有意义的.这是完全错误的.是的,gzip减少缩小的改进是有意义的,但是为什么你应该gzip注释,如果你可以正确修剪它们的空格并且gzip只是重要的部分.这就像你有一个存档文件夹有一些你永远不会使用的垃圾,你决定只是拉链而不是清理和压缩它.

另一个为什么毫无意义地进行缩小的论点是它很乏味.也许这在2009年是如此,但在此之后出现了新的工具.现在您无需手动缩小标记.对于像Grunt这样的东西,安装grunt-contrib-htmlmin(依赖@kangax的HTMLMinifier)并配置它来缩小你的html 是微不足道的.你只需要2个小时来学习咕噜声和配置一切,然后一切都在不到一秒的时间内自动完成.听起来1秒钟(你甚至可以通过grunt-contrib-watch自动完成任务)对于大约5%的改进来说并不是那么糟糕(即使使用gzip).

还有一个论点是CSS和JS是静态的,HTML是由服务器生成的,所以你不能预先缩小它.这也是真正在2009年,但目前更多的更多的网站都看起来像一个单页的应用程序,其中,服务器是薄客户端是做所有的路由,模板和其他逻辑.所以服务器只给你JSON,客户端呈现它.这里有很多关于页面和不同模板的html.

所以完成我的想法:

  • 谷歌正在缩小HTML.
  • pageSpeed要求你缩小html
  • 这是微不足道的
  • 它提供了约5%的改善
  • 它与gzip不同

  • Minfying HTML绝对不是微不足道的,因为HTML中的空格是重要的,是否可以删除任何给定的空格取决于CSS.此外,瘦客户端是可怕的,在我看来,不能作为一个很好的论据来反对缩小动态HTML的麻烦.(一个好方法是选择一个模板引擎[Haml,Jade等],它首先在渲染输出中不包含不必要的空格.) (3认同)

小智 23

我写了一个网页工具来缩小HTML. http://prettydiff.com/?m=minify&html

此工具使用以下规则运行:

  • 删除所有HTML注释
  • 空白字符的运行将转换为单个空格字符
  • 标签内不必要的空格字符将被删除
  • 两个标签之间的空格字符被删除,其中这两个标签中的一个不是单个标签
  • style标签内的所有内容都被假定为CSS并且因此缩小
  • script除非提供不同的媒体类型,否则标签内的所有内容都被假定为JavaScript,然后缩小
    • CSS和JavaScript缩小使用了大量分叉的JSMin形式.此fork扩展为本机支持CSS并且还支持SCSS语法.JavaScript缩小支持自动分号插入,但尚不支持自动大括号插入.

    • 嗨,它删除这一行!`<! - [if IE 8.0]> <link rel ="stylesheet"href ="css/ie8.css"type ="text/css"/> <![endif] - >` (7认同)

    ada*_*Lev 8

    这对我有用:

    http://minify.googlecode.com/git/min/lib/Minify/HTML.php

    它不是一个已经可用的在线工具,但作为一个简单的PHP包含它很容易,你可以自己运行它.

    我不会保存压缩文件,如果你真的需要动态执行此操作,并且启用Gzip服务器压缩总是更好的主意.我不知道IIS/.Net中涉及的程度如何,但在PHP中,向全局包含文件添加一行是微不足道的


    The*_*DBA 6

    CodeProject有一个已发布的示例项目(http://www.codeproject.com/KB/aspnet/AspNetOptimizer.aspx?fid=1528916&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2794900)来处理以下某些情况. .

    • 将ScriptResource.axd调用组合成一个调用
    • 根据浏览器功能压缩所有客户端脚本,包括gzip/deflate
    • 用于删除注释,缩进和换行符的ScriptMinifier.
    • 一个HTML压缩器,用于根据浏览器功能压缩所有html标记,包括gzip/deflate.
    • 并且 - 最重要的是 - HTML Minifier将完整的html写入单行并在可能的级别(正在构建中)缩小它.