@Petroveg да, вы правы, всегда нужно анализировать условия и смотреть особенности проекта. О нашем проекте я написал в самом вопросе, поэтому рассматриваю ответы в первую очередь относительно этих условий.
По поводу отложенного выполнения уже загруженного кода, я рекомендую посмотреть статью calendar.perfplanet.com/2011/lazy-evaluation-of-co... На данный момент этот подход мне кажется лучшим под наши условия.
@Petroveg вычитал такую вещь, что require.js умеет делать отложенную инициализацию скриптов. Т.е. код модуля не выполняется пока он явным образом не потребуется для работы пользователя.
В какой-то степени это решает проблему задержки на инициализацию всех скриптов при каждом открытии страницы. Получается, все объединить в один файл и использовать отложенную инициализацию самый интересный вариант.
А как на счет задержки на инициализацию всей этой кучи яваскрипта? Читал в одной статье, что разбор 1 мб скриптов может занимать 100-300 мс десктопным браузером и примерно в 10 раз дольше на мобильных устройствах.
@Petroveg так в том то и дело, что не требуется на одной странице 400 кб скриптов. Просто большинство мнений высказывается в пользу создания одного большого файла и его загрузке при первом визите.
Если я правильно понял, вы против этого подхода в первую очередь не изза скорости загрузки файла, а изза возможной задержки на синтаксический анализ всей этой кучи ненужного кода при каждом открытии страницы?
Согласен, что анализ одного javascript файла на 300-400 кб браузером пользователя может визуально выглядеть как подтормаживание сайта. Это можно отнести к недостаткам первого метода.
С другой стороны совершенно не согласен, что 300-400 кб это ерунда. Не забываем про пользователей мобильных устройств.
@Fesor все равно не укладывается у меня преимущества этого подхода. А если у нас не 400 кб несжатого js кода, а 800 или 1.5 мб. Когда-то придется остановиться и что-то делать другое.
HTTP кэш включен. С gzip наш итоговый размер js файла сократится раза в 2, наверное. Т.е. пользователь получит 200 кб вместо 400 (а мог бы получить всего 50 кб). При этом нас не заботит, что большая часть этого кода ему, вероятно, никогда не понадобится?
Временем и ресурсами браузера на синтаксический анализ ненужного кода также можно пренебречь?
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.