HTML缩小?

时间:2009-04-08 02:10:28

标签: html minify

是否有在线工具可以输入页面的HTML来源并缩小代码?

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

8 个答案:

答案 0 :(得分:63)

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

Sorry, markdown has no concept of tables

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

该项目记录和支持非常好。

答案 1 :(得分:58)

Don't do this。或者更确切地说,如果您坚持使用它,请在完成任何更重要的站点优化后再执行此操作。如果您计划手动使用在线工具处理每个页面,那么这项工作的成本/收益可以忽略不计,尤其是

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

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

答案 2 :(得分:33)

以下是对您的问题的简短回答:您应该缩小HTML,CSS,JS 。有一个易于使用的工具,称为grunt。它允许您自动执行许多任务。其中包括JSCSSHTML缩小,file concatenationmany others

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

简短回答 - 你一定要缩小HTML 。它今天微不足道,大约5% speedup。如需更长的答案,请阅读整个答案

过去,人们手动缩小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年也是如此,但目前moremore站点看起来像一个单页应用程序,其中服务器很薄,客户端正在执行所有路由,模板和其他逻辑。所以服务器只给你JSON并且客户端呈现它。这里有很多关于页面和不同模板的html。

所以要完成我的想法:

  • google正在缩小html。
  • pageSpeed要求你缩小html
  • 做起来很简单
  • 它提供了约5%的改善
  • 与gzip
  • 不同

答案 3 :(得分:23)

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

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

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

    答案 4 :(得分:8)

    这对我有用:

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

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

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

    答案 5 :(得分: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写入单行并在可能的级别(正在构建中)缩小它。

    答案 6 :(得分:3)

    对于Microsoft .NET平台,有一个名为WebMarkupMin的库,它会产生HTML代码的缩小。

    此外,还有一个模块可以将此库集成到ASP.NET MVC中 - WebMarkupMin.Mvc

    答案 7 :(得分:1)

    尝试http://code.mini-tips.com/html-minifier.html,这是用于Html Minifier的.NET Libary

    HtmlCompressor是一个小巧,快速且易于使用的.NET库,它通过删除额外的空格,注释和其他不需要的字符来缩小给定的HTML或XML源,而不会破坏内容结构。结果,页面尺寸变小,加载速度更快。还提供压缩器的命令行版本。