Учитывая преимущества повторного использования и мультиплексирования соединений в HTTP2 (и SPDY) и доступности сжатия gzip, является ли попытка добавления шага минимизации и конкатенации в процесс сборки оправданным?
Должен ли я минимизировать и объединять javascript и CSS при использовании HTTP2/SPDY?
Ответ 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 - и это также зависит от того, где находятся ваши клиенты).
Ресурсы:
Ответ 3
Да, вам все равно нужно минимизировать и объединить файлы js и css по следующим причинам:
-
script minifying и SPDY-сжатие не совпадают. хороший minifier знает, как использовать локальную область видимости и заменять имена переменных с короткими повторяющимися именами, дружественными к сжатию.
-
SPDY объединяет ваши запросы, поэтому вам не нужно сшивать скрипты вместе. но не все браузеры поддерживают SPDY
-
SPDY 2 и 3 двоичные несовместимы. Когда браузер поддерживает 2, а сервер рекламирует 3, соединение возвращается к HTTP 1.1 через SSL; нет никаких преимуществ SPDY вообще
-
Загрузка 10 файлов по одному запросу по-прежнему приводит к 10 выборкам на стороне сервера. объединение файлов уменьшает дисковый ввод-вывод.
Ваш вопрос сопоставим с "может ли я заботиться о написании эффективного кода сейчас, когда машина может работать быстрее?"
Ответ НЕТ. Не ленитесь. Код правильно.