缩小你的HTML,CSS和Javascript是一个坏主意吗?

Joh*_*and 21 html javascript css minify web

维基百科将缩小定义为......

[...]从源代码中删除所有不必要的字符而不更改其功能的过程.这些不必要的字符通常包括空格字符,换行符,注释,有时还有块分隔符,它们用于为代码添加可读性,但不需要执行.

目前,我正在这样做是为了我的HTML,CSS和Javascript,以节省带宽,但有人告诉我说,他记得有一个浏览器行为异常时,有一定的标签(即之间没有空格ulli项目).这是真的?

是否有任何值得注意的浏览器,代理或其他用户代理在处理缩小代码时行为不当?

除了在查看源代码时失去可读性之外,缩小还有其他任何缺点吗?

xec*_*xec 13

有人告诉我,当某些标签(即ul和li项目)之间没有空白时,他会记得浏览器行为不端.这是真的?

是的,在某些情况下,如果元素设置为显示inline-blockinline.

以下两个列表的呈现方式不同,因为<li>元素之间有空格:

HTML

<ul>
    <li>simple</li>
    <li>list</li>
</ul>

<ul><li>minified</li><li>list</li></ul>
Run Code Online (Sandbox Code Playgroud)

CSS

li {
    display: inline-block;
    background: blue;
    color: white;
}
Run Code Online (Sandbox Code Playgroud)

渲染输出

在此输入图像描述

http://jsfiddle.net/Uwv3e/

  • 从技术上讲,这将是缩小脚本的错误,因为根据定义,缩小是"从源代码**中删除所有不必要的字符而不改变其功能的过程**".因此,一个好的缩放器可能会将其缩小为"<ul> <li>缩小</ li> <li>列表</ li> </ ul>`或类似的东西. (7认同)
  • @Nit 是的,绝对。就我个人而言,我不相信 HTML 缩小器知道何时保留空格,何时不保留,而所有这些只是为了减少几个字节。我确实缩小了我的 JS 和 CSS。 (2认同)

Ben*_*Ben 9

为了...通常会减少可维护性,通常可以节省大约4-8kb的站点大小.通过压缩网站上的单个jpg并删除图像的元数据,您可以节省更多成本.

除非您正在构建一个拥有大量页面和子页面以及模板和超过5,000行CSS和JS的网站,否则您将发现缩小是浪费精力,特别是在维护发挥作用时,您必须保持未经编译的文件版本只是为了修复,缩小,用新版本覆盖缩小的文件,祈祷维护网站的下一个人使用相同的工作流程并且不对更改的minfiied CSS文件进行更改,然后当你回来并消除他的变化......

我提出这个问题是因为我看到了这种情况.我在缩小前后的网站上完成了GTmetrics和Pingdom分数,分数和加载速度几乎没有变化,足以让它值得.

我总是把缩小称为"花钱来节省便士".您的努力可以更好地花在开发项目的其他地方.

  • 引入另一个依赖项,如 Gulp 或 Grunt,纯粹是为了缩小文件,并没有让事情变得更简单。最简单的方法是提交文件并完成它。额外的好处是,您可以查看实时站点上的源代码并在那里诊断问题,如果开发站点和实时站点之间存在您不知道的隐藏差异,这很好。另外,如果最初实现工作流的开发人员被替换,新的开发人员不必处理 Gulp 或 Grunt 来运行他们的新工作流。 (4认同)
  • 你描述了一个糟糕的缩小过程.通常一个好的设置会使用gulp或grunt之类的东西来将文件从一个目录(或前缀文件名)缩小到另一个目录.您通常会将未分类的文件保留在Web根目录之外,并在缩小后将其移动到那里. (2认同)

Adr*_*zar 7

缩小你的HTML,CSS和Javascript是一个坏主意吗?当然是!

但是,一个好主意是缩小CSS和Javascript

为什么?

  • 缩小通过(a)替换紧凑名称的人类可读变量名称,例如"mySuperTollesFunctionCall()"到"m()"和(b)删除空格来实现
  • 您可以从(a)和(b)中受益的JavaScript
  • 你的CSS只能受益于(b)
  • 理论上,您的HTML代码只能从(b)中获益,但这不值得尝试.

任何简单好的HTML编辑器都可以为您的HTML文件格式化.照顾"预"块内的空白,给你提示W3C合规等,等等.

如果您担心HTML文件的大小...您应该在Web服务器中启用静态文件的GZIP压缩,大多数活化石将处理它,您的客户将会欣赏它.

http://www.schroepl.net/projekte/mod_gzip/browser.htm


leo*_*leo 4

某些浏览器IE 版本存在缩小font-face声明的问题,请参阅: