Ani*_*pta 21 javascript optimization performance minify
我知道一个类似的问题,但它是一个很小的距离要问什么,我这里有点过,所以请不要flag为重复.
当你看到jQuery的生产版本时,为什么一段时间后会出现换行?我下载了一份副本并删除了所有新行(除了许可证),它仍然有效.(我针对Mozilla Firefox,Google Chrome和Opera上的更改运行了整个单元测试套件.)

我知道三个新行(不包括许可证)不会减慢它的速度,但是,仍然不是每一点都有帮助吗?
我给自己指了一个小小的挑战,从我的JavaScript代码中挤出一点点性能.
Mat*_*att 25
jQuery目前使用 UglifyJS来缩小其源代码.在他们的构建脚本,他们专门设置的max_line_length指令是32 * 1024:
UglifyJS的文档可以在max-line-len指令中说明;
--max-line-len(默认32K字符) - 在大约32K字符后添加换行符.当所有代码都在大约670K的单行上时,我已经看到FF和Chrome都会呱呱叫.传递-max-line-len 0以禁用此安全功能.
kat*_*ugh 13
Closure Compiler故意每500个字符左右添加换行符.防火墙和代理有时会损坏或忽略具有很长行的大型JavaScript文件.每500个字符添加换行符可以防止出现此问题.删除换行符对脚本的语义没有影响.对代码大小的影响很小,编译器优化换行符位置,以便在压缩文件时代码大小损失更小.
这与任何一般的缩小计划有关.
这些行(不包括许可证)的长度约为 30k 个字符。这可能是为了避免一些 Javascript 解析器在极长的行中死掉的错误。这在今天的浏览器上可能不会发生,但也许一些较旧的或更不起眼的浏览器有这样的限制。
\n(下面的旧答案,也可能适用,只是不适用于这种情况)
\n这可能是因为JSMin(一种流行的 Javascript 压缩器)会在某些条件下在输出中保留换行符。这是因为在 Javascript 中换行符是如果省略分号,换行文档说:
\n\n\n在省略换行符方面更为保守,因为换行符有时被视为分号。如果换行符位于非 ASCII 字符或 ASCII 字母或数字或以下字符之一之前,则不会省略:
\nRun Code Online (Sandbox Code Playgroud)\n\\ $ _ { [ ( + -\n如果它跟随一个非 ASCII 字符或一个 ASCII 字母或数字或以下字符之一:
\nRun Code Online (Sandbox Code Playgroud)\n\\ $ _ } ] ) + - " \'\n
其他缩小器可能有类似的规则。
\n因此,这主要是为了防止意外删除语法方面可能必需的换行符。你最不想看到的就是你的缩小版 JS 不再工作,因为缩小器破坏了它的语义。
\n关于\xc2\xbb 我知道三个换行符(不包括许可证)不会减慢它的速度,但是,不是每一点都有帮助吗?\xc2\xab当您的服务器使用 gzip 压缩时,差异将无论如何,这可能毫无意义。
\n| 归档时间: |
|
| 查看次数: |
3468 次 |
| 最近记录: |