Оптимизация js для производства — много маленьких или один большой js-файл

У меня есть приложение AngularJS, которое я хочу оптимизировать для скорости.

В настоящее время я искажаю и объединяю все свои Bower_components, которые мне нужны, в файл vendor.js.

В настоящее время я удаляю и объединяю все свои пользовательские js в файл scripts.js.

Таким образом, когда пользователь загружает страницу, в запросе на получение очень мало ресурсов. (В настоящее время всего 6 без изображений). Недостатком является то, что у меня есть два больших js-документа для загрузки - всего около половины мегабайта - весь документ необходимо загрузить, прежде чем можно будет выполнить какой-либо рендеринг страницы.

Меня больше всего беспокоит файл vendor.js. Лучше ли использовать предоставленные cdn, минимизированные файлы javascript (всего около 10) или лучше использовать мои конкатенированные и uglified vendor.js?

Первое означало бы, что общее количество ресурсов увеличится до 16 без ресурсов изображений, однако они будут обслуживаться сетями CDN, предоставленными другим поставщиком, что позволит выполнять параллельную загрузку.


person Gravy    schedule 18.06.2014    source источник
comment
Как всегда с такого рода вопросом оптимизации, вы узнаете, только попробовав его и профилируя результаты. Даже в этом случае сетевые задержки могут затруднить получение последовательного ответа.   -  person    schedule 18.06.2014
comment
возможный дубликат Должен ли я копировать все мои источники JavaScript в один файл?   -  person rpax    schedule 18.06.2014


Ответы (1)


Несмотря на то, что первый допускает параллельную загрузку, это 16 различных TCP-соединений со встроенным HTTP, поэтому также отправляется 16 HTTP-заголовков. TCP немного дороже для открытия новых соединений. Поэтому я думаю, что было бы лучше собрать все в один файл.

Что вы можете сделать в любом случае, так это протестировать оба случая и посмотреть в сетевых инструментах разработчика вашего любимого веб-браузера, чтобы увидеть, в среднем, какой из них является самым быстрым. По крайней мере, выполнимо с Firefox.

person Elioty    schedule 18.06.2014