在不出现性能缺陷的情况下打包JavaScript代码的最佳方法是什么?
-
02-07-2019 - |
题
我正在寻找一种为iPhone压缩JavaScript代码的方法。有没有办法避免在小而慢的设备上使用大量的CPU时间?
其他提示
我喜欢 ShrinkSafe 。它解释你在Rhino中的代码,然后它返回压缩代码。因为它在真正的解释代码上运行(而不是复杂的字符串评估),所以它永远不会破坏代码或找不到公共变量和私有变量之间的差异。
这是一种优质的工具。
我们使用了 js_compactor 和 JavaScriptLint 来”编译“并在我们的自动构建过程中压缩我们的JavaScript。进一步的构建步骤将采用压缩JavaScript并将相关文件组合到单个包中。性能提升非常显着,但请注意,您无需进行调试。
当存在多个文件时,减少传输到客户端的文件数量可以大大提高性能。通常,浏览器一次只能打开到单个服务器的2个连接,因此即使您正在传输压缩和最小化文件,浏览器也会花费大量的开销来检查其缓存。 yslow 帮助了我们识别为什么页面需要很长时间才能加载并帮助我们集中精力进行优化。我们指导我们的环境使用原始文件或最小化和压缩版本
我相信iPhone上的Safari支持gzip输出,所以你可以使用像mod_deflate这样的东西。使用这种方法我得到了最好的结果。相当多的JavaScript压缩东西都是绝对垃圾,解压缩的时间比下载更大的文件要长。不过,JSMin看起来还不错。
您可以在 JavaScript CompressorRater 上尝试不同的工具。除了打包器之外的所有工具都没有影响javascript的执行速度,据我所知 - 它们只删除空格,重命名变量等。
我自己认为 YUI Compressor 是最好的。
首先验证 JSLint 中的代码以确保压缩器正确理解它总是有用的。
确保您的网络服务器在客户端支持时正确地提供gzip / deflated的内容通常比缩小程序代码本身更有效。当然,使用两者往往会产生更小的尺寸。
过去几天我刚刚经历了这个小小的舞蹈。我们尝试使用 Packer ,但发现我们打包的JavaScript执行时间超过2秒(不是提到阻止其他下载)。基于这篇文章,我们已切换到 YUI Compressor 。我们的gzip压缩文件不仅更小,执行时间也不到300毫秒。