缩小和优化js代码的技术,它们真的有效吗?

时间:2013-04-04 16:19:19

标签: javascript performance optimization

我想知道以下任何一种技术都会增加任何性能:

  • !!变量 - 我在jquery及其插件中看到这个 - 强制转换为bool

  • null == variable - 如果你错过了第二个等于,这可能很有用。但有人在SO声称这是因为gzip优化

  • 变量的缩小和缩小 - 关于我对IE感兴趣,它可以从变量的缩小中受益

哪些是真的,哪些是无用的?

2 个答案:

答案 0 :(得分:1)

是的,缩小适用于构建较小的文件,如果你不是自己尝试,而是使用像优秀Google's Closure Compiler这样的缩小器。

关于执行性能,增益不明显,甚至可能略微为负,这取决于它是如何完成的。但这不是目标:目标是节省带宽。

没有理由自己写一个缩小器,除非你有足够的信心,你可以做得更好,而已经证实的那些。这不是一件容易的事。

现在,看看你的第一个具体技巧(两个第一个命题),它们对缩小几乎没用。

请注意,JS minification独立于JS引擎,这里没有特定的IE问题。

答案 1 :(得分:0)

缩小作品。主要目标是使生成的JS文件更小,以便在加载jS资源时页面不会使用那么多带宽。诸如Google的Closure Compiler之类的缩小版可以通过执行诸如死代码消除之类的任务来进一步完善,这可以进一步缩小代码。

<强>更新

您的前两个示例并不真正适用于缩小,并且性能节省可以忽略不计。正如我之前提到的,Google的Closure Compiler将执行死代码删除。但它也可以做的是执行函数和常量内联,这可能会为您提供一些性能优势,但据我所知,即使是最积极的优化也不会比这更多。也就是说,我不知道任何将您的代码转换为更高性能代码的minifier。我不知道IE会从中受益多少,但我会说,因为代码实际上并没有被积极地转化为性能更高的代码,所以不会有太大的影响。也许变量的缩小意味着在浏览器内的符号表中占用更少的内存,但我认为这不会给你带来太大的收获。