Есть ли смысл выполнять js код только на предназначенной для него странице?

Доброго времени суток!
Давно интересует вопрос, обсуждения по которому я так и не нашел.

Для начала приведу пример своей реализации

Допустим у нас есть клиент на JS с Webpack (собираем все модули в один файл и не только).
Один из модулей, назовем его pageHandler, имеет условие которое из window.location.pathname определяет на какой странице пользователь находится и выполняет код модуля ответственного за JS на этой странице.

Ладно обработчики, event loop вряд-ли заметит разницу, но предотвратить остальной код, возможно имеет смысл?
Прошу максимально развернутый ответ. Спасибо)
  • Вопрос задан
  • 591 просмотр
Пригласить эксперта
Ответы на вопрос 5
@vjjvr
Если вы про загрузку - не стоит.
Пусть везде будет один и тот же файл
Он закэшируется лучше именно так.

А не выполнять код который не нужен - само собой не надо выполнять такой код.
Ответ написан
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
если код не большой и не сильно увеличит в объеме ваш основной js который подгружается на страницу, то хватит простой привязки кода к блоку. к примеру так:
if ( $('нужный div').length > 0 ) {
   //ваш код
}

а если код действительно масивный и на несколько сотен строк, то да - лучше подключать его отдельно на той странице где он должен быть.
Ответ написан
Комментировать
akzhan
@akzhan
Нет. Пусть все страдают.

P.S.: надеюсь, поймёте правильно
Ответ написан
Комментировать
@vivcogit
JS разработчик
Если страниц немного, то можно вынести общий код в отдельный бандл, а для текущей страницы подгружать уже тот который ей нужен.
Ответ написан
Комментировать
Shshzik
@Shshzik
Начинающий
Внесу свою небольшую лепту, надеюсь поможет. Пример из собственной жизни. Есть сайт, который верстали до меня с добавление всяких библиотек и т.п. Jquery, Jquery-ui, всплывахи, карусили и т.п.
В конце концов файлом многовато стало. Решили уменьшить. Я слил все эти файлы в 1, собирал с помощью webpack. 1 метр файл получился что ли. Мало, но не суть. После осмотра сайта выяснилось, что jquery-ui нужен только на 1(!) страницу. А грузился на всех. И так еще с несколькими библиотеками. И отличным решением для себя я нашел require.ensure - отложеная загрузка. И теперь все библиотеки, которые нужны только на определенных страницах грузятся только на них. ВОт.

if ( $('нужный div').length > 0 ) {
   require.ensure([], require => {
var mdl = require('твой модуль');
mdl();
})
}


примерно такой код я использую.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы