Там какая-либо точка к минификации JavaScript, если Вам включили сжатие?

Если Ваш веб-сайт имеет, выкачивают/архивируют включенное сжатие, там какая-либо точка к минификации JavaScript?

Моя теория состоит в том, что различие между сжатым уменьшенным файлом JavaScript и сжатым неуменьшенным файлом JavaScript незначительно.

Существует очень немного браузеров, оставленных там, которые не поддерживают сжатие. Я предположил бы, что некоторые боты (пауки) не могли бы поддерживать сжатие (я знаю о по крайней мере одном), но они вряд ли будут интересоваться Вашим JavaScript, поскольку они вряд ли будут выполнять JS и так не должны загружать его.

18
задан Guy 13 July 2010 в 16:17
поделиться

8 ответов

Давайте просто протестируем это. Я использовал jQuery 1.4.2 и gzip (без флагов; -9, похоже, не имеет существенной разницы), чтобы получить следующие цифры.

  • Разработка: 163,855 байт
  • Разработка, сжато: 45,994 bytes
  • Minified: 72,174 байт
  • Минифицированный, сжатый: 24,565 байт

Таким образом, в данном конкретном случае минификация делает файл почти вдвое меньше. Разумеется, релиз разработки изобилует комментариями. Давайте удалим их и посмотрим, что получится:

  • Вырезано: 131 155 байт
  • Вырезано, сжато: 32 914 байт

Это все равно значительно больше, чем минифицированная версия.

28
ответ дан 30 November 2019 в 07:44
поделиться

Я считаю, что уменьшенная версия будет работать быстрее. Переменная теперь имеет длину 1-2 символа, поэтому синтаксический анализ выполняется быстрее, пробелы и комментарии не являются проблемой. Конечно, вам нужно будет разработать тест, чтобы иметь возможность определить какие-либо различия.

У сжатия для мобильной платформы есть свои плюсы и минусы. Да, он загружается немного быстрее, но распаковка действительно расходует заряд батареи.

- Дэйв

1
ответ дан 30 November 2019 в 07:44
поделиться

На счету каждый байт. Чем больше вы экономите, тем лучше.

0
ответ дан 30 November 2019 в 07:44
поделиться

Вы также можете использовать компрессор / упаковщик JavaScript, который использует что-то вроде кодировки base-62 (например, this ).

Он может превратить 72174 байта (jquery-1.4.2.min.js) примерно в 50640 байтов. Однако его дальнейшее сжатие не улучшит сжатие по сравнению с прямым сжатием минифицированного файла (тоже 24 КБ).

(Вам также может потребоваться сохранить заголовки лицензий, если вы используете компрессор / упаковщик, около 400 байт в этом примере).

0
ответ дан 30 November 2019 в 07:44
поделиться

Минификация файла перед его зипованием даст небольшую разницу в производительности сервера, хотя я сомневаюсь, что она будет значительной. Минификация удаляет комментарии, чего не делает gzip/deflate, но в остальном я бы сказал, что вы правы.

Конечно, всегда есть IE6. По моему опыту, этот браузер ненадежен, когда речь идет о gzip-файлах, отличных от text/html. Хотя сейчас это уже почти не имеет значения, поскольку использование IE6 продолжает падать.

2
ответ дан 30 November 2019 в 07:44
поделиться

Я попытался застегнуть jquery-1.3.2 как в оригинальной, так и в минифицированной версии:

jquery-1.3.2.js      118 kb  ->  36 kb
jquery-1.3.2.min.js   56 kb  ->  20 kb

Таким образом, минификация перед сжатием действительно имеет существенную разницу.

2
ответ дан 30 November 2019 в 07:44
поделиться

Посетите сайт разработчиков Yahoo - http://developer.yahoo.com/performance/rules.html - чтобы узнать, почему минимизация вместе со сжатием хорошо. Также посмотрите что-нибудь от Стива Содерса ( Высокопроизводительные веб-сайты - отличный сайт и книга!).

Я бы избегал обфускации, если вы действительно не хотите выжать из своих скриптов как можно больше. Обфускация, в зависимости от того, как вы написали свой JavaScript, может привести к ошибкам. Возможно, вам будет лучше просто минимизировать и пройти 80-90% пути.

Удачи!

0
ответ дан 30 November 2019 в 07:44
поделиться

Имейте в виду, что минификация на самом деле отбрасывает информацию. Пробелы / комментарии / длинные имена переменных / и т. Д. полностью отброшены (и не могут быть восстановлены).

Серверное сжатие, с другой стороны, должно быть без потерь, поэтому оно не может отбросить какую-либо информацию. Он может только сжать его.

Таким образом, сжатие на сервере не может (теоретически) достичь тех же уровней сжатия, которые может достичь минификация (теоретически).

Помните, хотя теория и практика теоретически одинаковы, в практике они никогда не . : -)

0
ответ дан 30 November 2019 в 07:44
поделиться
Другие вопросы по тегам:

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