Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么谷歌';s闭包编译器是否会留下一些不必要的空格或换行符?_Javascript_Google Closure_Google Closure Compiler_Minify - Fatal编程技术网

Javascript 为什么谷歌';s闭包编译器是否会留下一些不必要的空格或换行符?

Javascript 为什么谷歌';s闭包编译器是否会留下一些不必要的空格或换行符?,javascript,google-closure,google-closure-compiler,minify,Javascript,Google Closure,Google Closure Compiler,Minify,我注意到,每次使用时,页面右侧的编译代码中都会留下一些不必要的空格。这些对应于编译代码的宿主版本中的换行符 例如(请注意换行符,每个换行符似乎都是不必要的): 到目前为止,我只是手动删除它们,但我很好奇它们为什么会出现。是为了限制托管版本代码的行长度以使其更具可读性吗? 编译器是否足够聪明,可以有意地保留或插入这些代码,以最大限度地提高GZIP压缩效果 我知道它们对文件大小的影响很小,但在缩小源代码脚本中的每一个字节方面付出了巨大的努力,这与我们的直觉背道而驰 为什么编译脚本中会有随机换行?

我注意到,每次使用时,页面右侧的编译代码中都会留下一些不必要的空格。这些对应于编译代码的宿主版本中的换行符

例如(请注意换行符,每个换行符似乎都是不必要的):

到目前为止,我只是手动删除它们,但我很好奇它们为什么会出现。是为了限制托管版本代码的行长度以使其更具可读性吗? 编译器是否足够聪明,可以有意地保留或插入这些代码,以最大限度地提高GZIP压缩效果

我知道它们对文件大小的影响很小,但在缩小源代码脚本中的每一个字节方面付出了巨大的努力,这与我们的直觉背道而驰

为什么编译脚本中会有随机换行?

闭包编译器有意每隔500个字符左右添加换行符。防火墙和代理有时会损坏或忽略行非常长的大型JavaScript文件。每500个字符添加一次换行符可以防止此问题。删除换行符对脚本的语义没有影响。对代码大小的影响很小,并且编译器优化了换行符的位置,因此当文件被gzip压缩时,代码大小的损失更小


你知道这很聪明!:)

我无法访问该链接,该链接返回的页面“内容长度”为0。你能在你的问题中粘贴(部分)代码吗?很抱歉,我假设谷歌无限期地托管编译后的代码,但显然他们没有。我更新了上面问题中的链接。最疯狂的事情是谷歌PageSpeed Insights抱怨几个字节(太棒了,这就解决了问题了!我还没有看到常见问题解答-感谢链接,我感谢你的回答。最疯狂的事情是谷歌PageSpeed Insights抱怨几个字节(@JoseNobile)我最近在Java应用程序中遇到了这个换行符问题。我解决了这个问题,手动删除了闭包编译器引入的换行符。