25

Google の Closure Compiler Serviceを使用するたびに、ページの右側に表示されるコンパイル済みコードに不要なスペースがいくつか残ることに気付きました。これらは、コンパイルされたコードのホストされたバージョンの改行に対応します。

例(改行に注意してください。それぞれが不要に思われます):

http://troy.onespot.com/static/stack_overflow/closure_spaces.js

これまで手動で削除してきましたが、なぜそこにあるのか不思議です。ホストされているバージョンのコードの行の長さを制限して読みやすくするためですか? コンパイラは、GZIP 圧縮の作業を最大化するために意図的にそれらを残したり挿入したりするのに十分スマートでしょうか?

それらがファイルサイズに些細な影響を与えることは知っていますが、ソーススクリプトの最後のバイトをすべて縮小するために多大な努力が払われているため、なぜそこにあるのかは直感に反します.

4

1 に答える 1

40

Closure Compiler FAQの引用:

コンパイルされたスクリプトにランダムな改行があるのはなぜですか?

Closure Compiler は、約 500 文字ごとに意図的に改行を追加します。ファイアウォールとプロキシは、非常に長い行を含む大きな JavaScript ファイルを破損したり、無視したりすることがあります。500 文字ごとに改行を追加すると、この問題を回避できます。改行を削除しても、スクリプトのセマンティクスには影響しません。コード サイズへの影響は小さく、Compiler は改行の配置を最適化するため、ファイルが gzip 圧縮された場合のコード サイズのペナルティはさらに小さくなります。

あなたはそれが賢いことを知っていました!:)

于 2010-06-10T23:43:47.557 に答える