Своевременный упаковщик активов - PullRequest
2 голосов
/ 27 июля 2010

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

Я видел таких упаковщиков на нескольких сайтах (DataExplorer для одного). Вот образец из vimeo :

<link rel="stylesheet" type="text/css" media="all" href="/assets/css/get/38402/global,lightbox,new_phome,stats_module" />

Я пытаюсь взвесить все «за» и «против» (, и вот где вы, ребята, пришли! ) создания упаковщика ресурсов (и минимизатора), который будет кэшировать все зависимости страницы в два файла ( js и css соответственно).

Несколько проблем для рассмотрения:

  • Помогает ли это производительность, если пользователь должен загружать разделы global.css, потому что он упакован на одной странице с login.css и упакован с другой без нее?

  • Нужно ли их компилировать в первый раз , когда пользователь нажимает на него (и, конечно, кешировать впоследствии), или есть метод для очистки каждой страницы и кеширования минимизированных результатов? как часть развертывания, чтобы один пользователь никогда не сталкивался с такой длинной загрузкой страницы?

Это еще далеко от развертывания; Я просто подумал, что получу несколько мыслей от вас, экспертов.

1 Ответ

1 голос
/ 05 ноября 2010

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

Каждый файл создает еще один запрос, с помощью которого:

  1. Может быть сделан запрос DNS,
  2. Файлы cookie отправлены (если статический поддомен отсутствует).используется,
  3. Сработали механизмы аутентификации,
  4. .htaccess, php.ini и т. д. проверены

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

Вы можете найти много хороших указателей об этом и других возможных улучшениях скорости для любого веб-приложения на Google Speed ​​ (особенностатьи) и на Yahoo Performance .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...