Должен ли я минимизировать и объединять javascript и CSS при использовании HTTP2/SPDY?

Учитывая преимущества повторного использования и мультиплексирования соединений в HTTP2 (и SPDY) и доступности сжатия gzip, является ли попытка добавления шага минимизации и конкатенации в процесс сборки оправданным?

Ответ 1

По словам Сурмы из команды Chrome, на H2 вы можете и на самом деле должны прекратить связывание, потому что оно бесполезно и позволяет более эффективно кэшировать браузер:

https://www.youtube.com/watch?v=w--PU4HO9SM (время 1:10)

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

Ответ 2

Тестирование является единственным верным средством принятия решения о минимизации и/или объединении, когда ресурсы обслуживаются через H2/SPDY.

Идея HTTP/2 (H2) состоит в том, чтобы обслуживать небольшие статические ресурсы в потоке (одно мультиплексное TCP-соединение). Тесты показали, что "большинство" сайтов выигрывают от увеличения скорости, не объединяя ресурсы (и даже не используя CDN). Все зависит от размеров ресурсов, обслуживаемых на H2/SPDY. Я видел, как один сайт увеличил скорость на 30% +, а другие без изменений.

Имея это в виду, мое предложение слишком проверено, минимизируя все ресурсы и не объединяя их. Я также проверил бы обслуживание всех общих ресурсов (не используя CDN - и это также зависит от того, где находятся ваши клиенты).

Ресурсы:

  1. Akamai
  2. Обозреватель Патрик Стокс
  3. HTTP/2 101 (Chrome Dev Summit 2015)

Ответ 3

Да, вам все равно нужно минимизировать и объединить файлы js и css по следующим причинам:

  • script minifying и SPDY-сжатие не совпадают. хороший minifier знает, как использовать локальную область видимости и заменять имена переменных с короткими повторяющимися именами, дружественными к сжатию.

  • SPDY объединяет ваши запросы, поэтому вам не нужно сшивать скрипты вместе. но не все браузеры поддерживают SPDY

  • SPDY 2 и 3 двоичные несовместимы. Когда браузер поддерживает 2, а сервер рекламирует 3, соединение возвращается к HTTP 1.1 через SSL; нет никаких преимуществ SPDY вообще

  • Загрузка 10 файлов по одному запросу по-прежнему приводит к 10 выборкам на стороне сервера. объединение файлов уменьшает дисковый ввод-вывод.

Ваш вопрос сопоставим с "может ли я заботиться о написании эффективного кода сейчас, когда машина может работать быстрее?"

Ответ НЕТ. Не ленитесь. Код правильно.