Пусть у нашего сайта есть три страницы — P1
, P2
и P3
, поочередно запрашиваемые новым пользователем. P1
использует ресурсы A, B и C, P2
— A, С и D, а P3
— A, С, E и F. Если ресурсы не объединять, получаем следующее:
P1
— тратим время на загрузку A, B и CP2
— тратим время на загрузку только DP3
— тратим время на загрузку E и FЕсли мы слили воедино абсолютно все JavaScript-модули сайта, получаем:
P1
— тратим время на загрузку (A+B+C+D+E+F)P2
— внешние ресурсы не требуютсяP3
— внешние ресурсы не требуютсяРезультатом становится увеличение времени загрузки самой первой страницы, на которую попадает пользователь. При типовых значениях скорости/пинга мы начинаем проигрывать уже при дополнительном объеме загрузки в 23 Кб.
Если мы объединили только модули, необходимые для текущей страницы, получаем следующее:
P1
— тратим время на загрузку (A+B+C)P2
— тратим время на загрузку (A+C+D)P3
— тратим время на загрузку (A+С+E+F)Каждая отдельно взятая страница при пустом кэше будет загружаться быстрее, но все они вместе — медленнее, чем в исходном случае. Получаем, что слепое использование модного сейчас объединения ресурсов часто только ухудшает жизнь пользователя.