Что происходит в jQuery с событием .on()
, если его элемент не существует в DOM?javascript/jquery performance
Например, если я использую это:
$(document).on('click', "#registerFormSubmit", function(){
// do something here
});
И у меня нет #registerFormSubmit
подарка на всех страницах, является браузер замедлился кодом, или нет?
So Почему я это делаю?
Я не хочу разделить свой javascript-код на 10 .js-файлов и включать каждый в зависимости от того, какой из них требуется на какой странице, так как я полагаю, что сервер/браузер будет передавать данные намного быстрее, если он находится в 1 файл (особенно если файл запутан и проинструктирован).
Если код замедляет работу даже с страницами, не содержащими этот элемент, может ли быть хорошим решением сохранить весь код в одном файле?
var page = window.location.pathname.split('/');
if (page[1] == 'contact'){
$(document).on('click', "#registerFormSubmit", function(){
// do something here
});
}
Помните, что .on()
событие придает функцию обработчика событий для любого элемента находится в DOM или будет в DOM в будущем. Поэтому я считаю, что это замедлит работу браузера, даже если элемент отсутствует в данный момент.
Однако предлагаемое решение if (page)
не должно присоединяться к событию, если страница не сопоставлена, imo.
Может ли кто-нибудь пролить свет на это, пожалуйста?
Что вы думаете об этом? – c69
За сколько страниц вы проверили бы это? Что, если завтра вы переключите все на Ajax и POST? Пожалуйста, разделите JS-файлы как файлы с базовыми файлами и специфичные для страницы js-файлы. Загружайте специфичные js-файлы на только нужные страницы. –
http://api.jquery.com/on/#event-performance – undefined