【问题标题】:Is minifying jQuery/HTML a good idea?缩小 jQuery/HTML 是个好主意吗?
【发布时间】:2011-12-24 17:48:43
【问题描述】:

在我的网站上缩小 jQuery 甚至 HTML 是个好主意吗?我怎样才能做到这一点并且仍然有一个很好的结构可以使用?

【问题讨论】:

  • 不确定如何“混淆”HTML...
  • 你为什么要混淆你的代码?不过,缩小是个好主意,这就是谷歌这样做的原因。更快的加载时间 = 更满意的客户。
  • 这不是混淆;那是缩小。
  • @MaxMackie "折叠它,删除换行符,删除缩进等" -- 它正在缩小
  • 我显然在工作中犯了一个错误,我将编辑问题。

标签: jquery html security obfuscation


【解决方案1】:

占地面积更小。另外,如果你在 Chrome 中查看,它不在一行上。

谷歌talks about their methodology in this document

缩小 HTML

概述

压缩 HTML 代码,包括其中包含的任何内联 JavaScript 和 CSS,可以节省大量数据字节并加快下载、解析和执行时间。

详情

缩小 HTML 与缩小 CSS 和 JS 具有相同的好处:减少网络延迟、增强压缩以及更快的浏览器加载和执行。此外,HTML 经常包含内联 JS 代码(在 <script> 标签中)和内联 CSS(在 <style> 标签中),因此缩小这些代码也很有用。

注意:此规则是实验性的,目前专注于减小尺寸,而不是严格的 HTML 格式良好。该规则的未来版本也将考虑正确性。有关当前行为的详细信息,请参阅Page Speed wiki

提示:当您对引用 HTML 文件的页面运行 Page Speed 时,它会自动运行 Page Speed HTML 压缩器(它会依次将 JSMin 和 cssmin.js 应用于任何内联 JavaScript 和 CSS)在文件上并将缩小的输出保存到configurable directory

【讨论】:

  • 感谢您的回答。看来我把“混淆”这个词误认为“缩小”了。对此感到抱歉
【解决方案2】:

不,他们不是故意这样做的。他们使用模板引擎,并且与许多服务器端模板引擎一样,他们并不真正关心编译后的样子。

一些例子:

请务必注意,您不能混淆页面。例如,如果你使用 Chrome,它有一个内置的检查器。我从来没有注意到页面是内联的、使用编码 sheningans 还是被混淆了。

http://www.youtube.com/watch?v=nOEw9iiopwI

【讨论】:

  • 我在 Jade 和 Node.js 工作时注意到它,这是一个意外,但它没有造成任何负面影响。
【解决方案3】:

我为此编写了一个工具。它可以缩小 JavaScript、CSS 和 HTML。

http://prettydiff.com/?m=minify&html

记住一些区别很重要。

  • 缩小 - 这是在不改变代码中的语法或命名约定的情况下减小文档的文件大小。通常,此过程仅涉及删除 cmets 和减少空白。

  • 混淆 - 这个词的字面意思是让更多人感到困惑。此过程涉及缩小、将变量名称和标签减少到可用字符长度最短的东西、删除死代码和其他更改。

只要您的文档和 cmets 得到备份,缩小就不会有害。这是因为减少的代码总是可以使用算法美化器来恢复。混淆是有害的,因为自动化过程无法恢复混淆的代码。它可以比仅仅缩小代码要小得多,但这种非凡的差距并不常见。

一个常见的错误误解是混淆可以用作安全层,因为代码更难阅读。混淆代码需要花费一些精力来研究,但这主要是由于缺少文档,并且没有其他原因,因为代码可以通过算法美化器传递。由于 JavaScript 总是被解释为纯文本,因此没有与代码库相关的安全性。

另一个错误的误解是 HTML 不能被缩小。如果代码是有效的 HTML,那么它可以被缩小而不会对递归美化操作造成任何损害。此规则的唯一例外是某些样式表属性捕获并打印出所有空白字符,例如white-space:pre,但这不是任何用户代理的默认表示,并且不常用。我在 Pretty Diff 文档中更详细地解释了可接受的 HTML 缩小级别的含义。

【讨论】:

    猜你喜欢
    • 2014-06-11
    • 2010-11-05
    • 2011-07-01
    • 2018-06-29
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    相关资源
    最近更新 更多