rim89
@rim89
программист-велосипедист

Подгрузка JS. Все вместе или по отдельности?

Доброго времени суток. Предположим, есть крупный сайт. На странице регистрации есть маска ввода для input, которая обрабатывается какой то библиотекой.
Стоит ли тягать эту библиотеку в общем JS файле, или оптимальнее ее подгружать только там, где она непосредственно используется ?
  • Вопрос задан
  • 323 просмотра
Пригласить эксперта
Ответы на вопрос 4
@Mysterion
оптимальнее ее подгружать только там, где она непосредственно используется
Ответ написан
Комментировать
@lem_prod
По логике лучше подгружать, но на практике, лучше грузить все вместе.
Тут суть в самих пользователях, все привыкли ждать пока загрузится страница, и библиотека в несколько кб не сильно изменит это время. Но если будет подгружаться динамически, у пользователя будет задержка перед открытием, это не очень любят. Как вариант делать анимацию ожидания.
Ответ написан
Комментировать
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Стоит ли тягать эту библиотеку в общем JS файле, или оптимальнее ее подгружать только там, где она непосредственно используется ?
Зависит от того, как часто пользователи попадают на эту страницу (т.е. как часто эта библиотека им нужна) и того, сколько она занимает и какой протокол (HTTP/1.x или HTTP/2) используется и прочих факторов. HTTP/2 по сути, решает проблему "множества коннектов" из-за которой приходилось сокращать по возможности кол-во файлов, собирать картинки в спрайты (хотя, со спрайтами - были и другие причины) и так далее.

Я обычно, склеиваю JS либо в 1 файл (хотя, последнее время специально я этого не делаю, это делают разнообразные оптимизаторы уровня сервера, в т.ч. самописные), либо по группам (в зависимости от типа проекта) и гружу их асинхронно. Это позволяет не замедлять загрузку страниц и иногда решает проблему порядка загрузки скриптов. Так же, такой подход позволяет сократить накладные расходы на ~0.1% даже с протоколом HTTP/2 за счёт сокращения файлов на диске, кол-ва запросов и сокращения кол-ва промежуточного трафика, в виде HTTP-заголовков и т.д.)... но, это не особо значительная экономия, если у вас HTTP/2.
Ответ написан
Комментировать
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
ИМХО удобнее всего использовать webpack и динамическую подгрузку модулей
https://www.youtube.com/watch?v=Om6yGdU_YlQ&list=P... (лучше просмотреть весь плейлист, если не знакомы с webpack)
https://webpack.github.io/docs/code-splitting.html
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы