99

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

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

4

8 回答 8

63

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

抱歉,markdown 没有表格的概念

它具有许多用于优化您的页面的选项,包括脚本最小化(ompressor、Google Closure Compiler、您自己的压缩器),这将是安全的。默认选项集非常保守,因此您可以从它开始并尝试启用更激进的选项。

该项目有很好的文档记录和支持。

于 2009-09-07T10:14:22.257 回答
58

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

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

(如果您确定要这样做,并且使用 Apache httpd,则可以考虑使用mod_pagespeed并打开一些选项以减少空格等,但要注意风险。)

于 2009-07-09T06:14:56.467 回答
34

这是对您问题的简短回答:您应该缩小 HTML、CSS、JS。有一个易于使用的工具,称为grunt。它允许您自动执行许多任务。其中包括JS CSS HTML缩小文件连接等等。

这里写的答案非常过时,有时甚至没有意义。与旧的 2009 年相比,很多事情发生了变化,所以我将尝试正确回答这个问题。

简短的回答 -你绝对应该缩小 HTML。今天它是微不足道的,并且提供了大约5% 的加速。如需更长的答案,请阅读整个答案

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

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

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

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

这里写的一个错误论点是,因为内容是使用 gzip 提供的,所以缩小没有意义。这是完全错误的。是的,gzip 减少了缩小的改进是有道理的,但是如果你可以正确地修剪它们,为什么要 gzip 注释和空格,并且 gzip 只是重要的部分。这就像您有一个要归档的文件夹,其中包含一些您永远不会使用的废话,并且您决定只压缩它而不是清理和压缩它。

另一个为什么做缩小毫无意义的论点是它很乏味。也许这在 2009 年是正确的,但在此之后出现了新的工具。现在你不需要手动缩小你的标记。对于像Grunt这样的东西,安装grunt-contrib-htmlmin(依赖于@kangax的 HTMLMinifier)并配置它来缩小你的 html 是很简单的。您只需要 2 小时来学习 grunt 并配置所有内容,然后一切都会在不到一秒的时间内自动完成。听起来 1 秒(您甚至可以使用grunt-contrib-watch自动执行任何操作)对于大约 5% 的改进来说并不是那么糟糕(即使使用 gzip)。

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

所以结束我的想法:

  • 谷歌正在缩小 html。
  • pageSpeed要求您缩小 html
  • 做起来很简单
  • 它提供了约 5% 的改进
  • 它与 gzip 不同
于 2014-03-17T05:15:39.040 回答
23

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

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

  • 删除所有 HTML 注释
  • 空白字符的运行被转换为单个空格字符
  • 删除标签内不必要的空白字符
  • 删除两个标签之间的空白字符,其中这两个标签之一不是单例
  • 标签内的所有内容style都被假定为 CSS 并被缩小为这样
  • 一个标签内的所有内容script都被假定为 JavaScript,除非提供了不同的媒体类型,然后像这样缩小
    • CSS 和 JavaScript 缩小使用 JSMin 的重分叉形式。这个 fork 被扩展为原生支持 CSS 并且还支持 SCSS 语法。JavaScript 缩小支持自动分号插入,但尚不支持自动大括号插入。
    于 2009-08-20T01:11:40.163 回答
    8

    这对我有用:

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

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

    不过,我不会保存压缩文件,如果你真的需要动态地执行此操作,并且启用 Gzip 服务器压缩总是一个更好的主意。我不知道这在 IIS/.Net 中的参与程度如何,但在 PHP 中,它就像在全局包含文件中添加一行一样简单

    于 2009-12-14T17:07:02.947 回答
    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。
    • 基于浏览器功能(包括 gzip/deflate)压缩所有 html 标记的 HTML 压缩器。
    • 而且 - 最重要的是 - 一个 HTML 缩小器,用于将完整的 html 写入单行并在可能的级别(正在建设中)缩小它。
    于 2009-04-08T03:39:05.623 回答
    3

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

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

    于 2013-04-16T10:44:09.760 回答
    1

    试试http://code.mini-tips.com/html-minifier.html,这是 Html Minifier 的 .NET 库

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

    于 2011-03-25T18:27:16.867 回答