Почему Компилятор Закрытия Google оставляет несколько ненужных пробелов или разрывов строки?

Я заметил, что каждый раз использую Сервис Компилятора Закрытия Google, он оставляет несколько ненужных пробелов в скомпилированном коде представленными на правой стороне страницы. Они соответствуют разрывам строки в размещенной версии скомпилированного кода.

Например (отмечают разрывы строки, каждый из которых кажется ненужным):

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

До настоящего времени я просто удалял их вручную, но мне любопытно, почему они там. Это должно ограничить длину строки размещенной версии кода для создания этого более читаемым? Компилятор мог быть достаточно умным, чтобы оставить или ввести их намеренно для максимизации усилий по сжатию GZIP?

Я знаю, что они имеют тривиальный эффект на размер файла, но с таким усилием, входящим в уменьшение каждого последнего байта в исходном сценарии, это парадоксально, почему они там.

24
задан Bungle 10 June 2010 в 23:20
поделиться

1 ответ

Цитирую Closure Compiler FAQ:

Почему в скомпилированных скриптах есть случайные переводы строк?

Closure Compiler намеренно добавляет переводы строк через каждые 500 символов или около того. Брандмауэры и прокси-серверы иногда повреждают или игнорируют большие файлы JavaScript с очень длинными строками. Добавление переносов строк через каждые 500 символов предотвращает эту проблему. Удаление переносов строк не влияет на семантику сценария. Влияние на размер кода невелико, а компилятор оптимизирует размещение переносов строк таким образом, что при гзипировании файлов штраф за размер кода становится еще меньше.

Вы знали, что это умно! :)

39
ответ дан 28 November 2019 в 23:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: