Answers:
也许尝试HTML Compressor,这是一个之前和之后的表,显示了它可以做什么(包括对于Stack Overflow本身):
它提供了多种选择来优化您的页面,包括安全的脚本最小化(压缩器,Google Closure编译器,您自己的压缩器)。默认选项集非常保守,因此您可以从此开始并尝试启用更激进的选项。
该项目有充分的文档记录和支持。
不要这样做。或者更确切地说,如果您坚持要这样做,请在完成任何更重要的网站优化后再执行。这样做的成本/收益可以忽略不计的可能性非常高,尤其是在您计划手动使用在线工具处理每个页面的情况下。
使用YSlow或Page Speed确定您真正需要优化页面的操作。我的猜测是,减少HTML字节数将不是您网站的最大问题。压缩,缓存管理,图像优化等更有可能对您的网站整体性能产生更大的影响。这些工具将向您展示最大的问题是-如果您已经解决了所有问题,但仍然发现HTML缩小起了很大的作用,那就去解决。
(如果确定要使用它,并且使用的是Apache httpd,则可以考虑使用mod_pagespeed并启用某些选项来减少空格等,但要注意风险。)
white-space: pre
,并且缩小会破坏预格式化的文本。
white-space:pre
,那么可以,最小化HTML会更加复杂。但是,我不清楚为什么有人要使用空白:pre而不是使用pre
or code
元素。
这是您问题的简短答案:您应该缩小HTML,CSS,JS。有一个易于使用的工具,称为grunt。它允许您自动执行许多任务。其中JS,CSS,HTML缩小,文件连结和其他许多人。
这里写的答案非常过时,甚至有时没有意义。与2009年的旧版本相比,很多事情发生了变化,因此,我将尝试正确回答。
简短的答案- 您绝对应该缩小HTML大小。今天是微不足道的,并提供了大约5%的加速比。如需更长的答案,请阅读整个答案
在过去,人们是手动缩小css / js(通过使用某些特定的工具运行它来缩小它)。自动化过程有点困难,并且肯定需要一些技巧。知道即使现在很多高级站点也没有使用gzip(这是微不足道的),人们不愿意缩小html是可以理解的。
那么为什么人们要缩小js,而不是html??缩小JS时,您将执行以下操作:
var isUserLoggedIn
至var a
)即使在过去,这也带来了很大的进步。但是在html中,您不能将长名称简称为短,在此期间几乎没有任何评论。因此,剩下的唯一事情就是删除空格和换行符。这仅带来少量改进。
这里写的一个错误论点是,因为内容是通过gzip提供的,所以缩小没有意义。这是完全错误的。是的,gzip减少了缩小的改进是有道理的,但是如果您可以适当地修剪gzip注释和空格,而gzip只是重要部分,那为什么还要使用gzip注释,空格呢?就像您要存档的文件夹中有一些您永远不会使用的废话一样,您决定只是将其压缩而不是清理和压缩。
为什么没有必要进行缩小的另一个论点是,它很乏味。也许在2009年是正确的,但是这次之后出现了新的工具。现在,您无需手动缩小标记。使用Grunt之类的东西来安装grunt-contrib-htmlmin(依赖于@kangax的HTMLMinifier)并对其进行配置以缩小您的html很简单。您只需要2个小时即可学习咕gr咕and的声音,并配置所有内容,然后所有内容在不到一秒钟的时间内自动完成。听起来1秒钟(您甚至可以使用grunt-contrib-watch甚至可以自动执行任何操作)对于大约5%的改进(即使使用gzip)也不是那么糟糕。
还有一个论点是CSS和JS是static,并且HTML是由服务器生成的,因此您无法对其进行最小化。这也是真正在2009年,但目前更多的和更多的网站都看起来像一个单页的应用程序,其中,服务器是薄客户端是做所有的路由,模板化和其他逻辑。所以服务器只给你JSON而客户端则将其呈现。在这里,您有很多用于页面的html和不同的模板。
所以结束我的想法:
<span>
)。首先,您始终可以找到一种方法来编写有效的HTML,使其与空格无关。同样,您可能会惊讶地听到,但是JS / CSS缩小器还会引入一个错误-这并不意味着您不应该使用它。因此,有两种方法可以解决您的问题:学习编写与空格无关的标记,在缩小之前/之后测试您的产品(CSS / HTML / JS)。另外,在Minifier中,您可以指定要保留的空白。
* { white-space: pre; }
是一个显而易见的选择,但是如果您要删除所有空白而不仅仅是折叠它(将其替换为边距),则文本可能会错误地复制并在文本浏览器和屏幕阅读器上造成严重破坏。
我写了一个网络工具来最小化HTML。 http://prettydiff.com/?m=minify&html
该工具使用以下规则进行操作:
style
标签均假定为CSS,因此将其缩小script
除非提供了不同的媒体类型,否则假定标签内的所有内容都是JavaScript,然后将其缩小<!--[if IE 8.0]><link rel="stylesheet" href="css/ie8.css" type="text/css" /><![endif]-->
这对我有用:
http://minify.googlecode.com/git/min/lib/Minify/HTML.php
它不是一个已经可用的在线工具,但是作为一个简单的PHP包含它很容易,您可以自己运行它。
不过,我不会保存压缩文件,如果确实需要,可以动态地执行此操作,启用Gzip服务器压缩始终是一个更好的主意。我不知道IIS / .Net如何参与其中,但是在PHP中,就像在全局包含文件中添加一行一样简单
CodeProject有一个已发布的示例项目(http://www.codeproject.com/KB/aspnet/AspNetOptimizer.aspx?fid=1528916&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2794900),可以处理以下某些情况。 。
对于Microsoft .NET平台,有一个称为WebMarkupMin的库,该库可产生HTML代码的缩略词。
此外,还有一个模块将此库集成到ASP.NET MVC- WebMarkupMin.Mvc中。
尝试http://code.mini-tips.com/html-minifier.html,这是HTML Minifier的.NET库
HtmlCompressor是一个小型,快速且易于使用的.NET库,它通过删除多余的空格,注释和其他不需要的字符,而不会破坏内容结构,从而最小化了给定的HTML或XML源。结果,页面变得更小,加载速度更快。还提供了命令行版本的压缩机。