iproger
@iproger
Безответственный гений

Как вам способ ускорить веб?

Причина: сайты с 10-20 js и столько же css. Почему бы не сделать 1 файл со всеми js,css,img[,html] на лету и отдавать его браузеру. Например, браузер присылает заголовок, что он может поддерживать "скомпилированные" файлы, а сервер тоже заголовком сообщает, что передает 1 файл, который нужно будет обработать.

Минусы: очевидно, что больше мороки, доп. стандарты.
Плюсы: огромное ускорение.

Нечто похожее - SPDY.

Что скажете?
  • Вопрос задан
  • 3004 просмотра
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
эм... что?

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

Что касается SPDY - то тут вы вообще ни капельки не попали. Там профит в том что используется одно tcp-соединение с сервером и мультиплексирование данных. Это позволяет снизить нагрузку на сервер, не тратить время на подключение к серверу по новой для загрузки следующих файлов и т.д. По сути при использовании этого протокола конкатенация файлов стилей и скриптов не должна приносить существенного профита, ибо соединение все равно будет одно и то же.

p.s. приведенная вами статья не даром находится в хабе "ненормальное программирование".
Ответ написан
Комментировать
MonkAlbino
@MonkAlbino
Фронтенд разработчик
Техник оптимизации много, каждая подходит для конкретного случая:
- 1 файл html+css+js: логичен, если нет внешнего кода (например jquery) и сайт состоит из 1 страницы.
- 3 файла html, css, js: для первой точки входа на сайт будет загружено 3 файла, для последующих страниц только html. css и js возьмутся из кэша браузера.
- 4 файла html, css, js, img-спрайты: мелкие картинки выносятся в отдельный спрайт, большие картинки грузятся как есть.
- n-файлов html, css, js, img-спрайты: для первой точки входа грузится html, базисный css и js и специфичный для данной страницы css и js. для последующих новый html, специфичный для страницы css и js. базисный уже к кэше. подходит если очень большой проект, много разных страниц/поддоменов в разной стилистики, но с общим базисов. базисные файлы выносят в отдельный домен 3го уровня или домен 2 уровня (чтобы куки не посылать и не обрабатывать).
Ответ написан
KEKSOV
@KEKSOV
Мыслите в правильном направлении и это хорошо, но немного опоздали - идея далеко не нова. Для развития знаний в этой области покурите Google PageSpeed Tools, есть еще масса способов "ускорить веб"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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