Существует ли преимущество для уменьшения JavaScript прежде gzipping это?

Там некоторая допустимая цель к уменьшению перед сжатием? Кажется очень маловероятным, что gzipped файл меньше, если это уменьшило сначала.

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

31
задан Mark Amery 3 November 2015 в 16:49
поделиться

5 ответов

Да, однозначно преимущество есть.

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

Пример:

function foo(this_is_my_variable){
    var this_is_my_other_variable = 0;
    this_is_my_other_variable = this_is_my_other_variable + this_is_my_variable;
    return this_is_my_other_variable;
}

Это может быть уменьшено до:

function foo(a){
    var b = 0;
    b = b +a;
    return b;
}

Или, если минификатор умен:

function foo(a){
    return a;
}

Весь код дает одинаковые результаты, но размер сильно отличается.

22
ответ дан 27 November 2019 в 22:18
поделиться

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

У меня есть 20-минутный php-скрипт, который взаимодействует с yui compressor и googles closure compiler. Он показывает мне байты до и после, включая после gzip, так что мне довольно легко проверить.

1
ответ дан 27 November 2019 в 22:18
поделиться

Может быть. Помимо удаления пробелов, минимизация JavaScript может привести к большему количеству повторений одного и того же текста, что может означать немного более высокое сжатие с помощью gzip.К счастью, это легко сделать до и после, поскольку инструмент командной строки gzip , распространенный в * nix и , доступный для Windows , использует один и тот же алгоритм сжатия (хотя и не совсем тот же формат). ).

3
ответ дан 27 November 2019 в 22:18
поделиться

Это также может помочь ускорить синтаксический анализ кода javascript в браузере. В зависимости от размера ваших файлов браузер может потратить значительное количество времени на синтаксический анализ и разметку файла, который будет уменьшен за счет минимизации.

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

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

2
ответ дан 27 November 2019 в 22:18
поделиться

Что касается размера необработанного файла, вот пример (jQuery 1.4.2):

$ curl http://code.jquery.com/jquery-1.4.2.js | gzip > jquery.gz
$ curl http://code.jquery.com/jquery-1.4.2.min.js | gzip > jquery-min.gz

$ ls -la jquery*
-rw-r--r--  1 me  staff  24545 Apr  7 12:02 jquery-min.gz
-rw-r--r--  1 me  staff  45978 Apr  7 12:02 jquery.gz

Таким образом, уменьшенная версия примерно вдвое меньше.

26
ответ дан 27 November 2019 в 22:18
поделиться
Другие вопросы по тегам:

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