Я работаю над рефакторингом пространства имен JavaScript для сайта. Пространство имен использует jQuery для селекторов и событий. Вот пример.
MyNamespace = {
eventElements : {
headerSectionA : $("h1.section-a");
headerSectionB : $("h1.section-b");
}
sectionA : function() {
// do stuff for section A here, such as
MyNamespace.eventElements.headerSectionA.click(function(){
// behavior A
});
}
sectionB : function() {
// do stuff for section B here, such as
MyNamespace.eventElements.headerSectionB.click(function(){
// behavior B
});
}
}
Это пример дистиллированного кода. Представьте себе множество eventElements и множество разделов сайта, которые используют подмножества этих eventElements.
Мой вопрос заключается в том, проходит ли jQuery DOM для всех eventElements каждый раз, когда загружается этот скрипт, или только когда вызывается функция, использующая этот eventElement.
Я хочу избежать потери производительности, но я не уверен, что jQuery пересекает DOM при объявлении свойства eventElement или только когда событие присоединено к eventElement.
Если при использовании подхода, описанного выше, произойдет потеря производительности, я разветвлюсь в пространстве имен, чтобы объявить только eventElements в контексте раздела, в котором используются эти eventElements.