Je travaille sur la refactorisation d'un espace de noms JavaScript pour un site. L'espace de noms utilise jQuery pour les sélecteurs et les événements. Voici un exemple.Sélecteurs jQuery stockés en tant que propriétés dans un espace de noms
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
});
}
}
Ceci est un échantillon de code distillé. Imaginez de nombreux eventsElements et de nombreuses sections de site qui utilisent des sous-ensembles de ces eventElements.
Ma question est de savoir si jQuery parcourt le DOM pour tous les eventElements chaque fois que ce script se charge, ou seulement lorsqu'une fonction qui utilise cet événement eventElement est appelée.
Je souhaite éviter la perte de performances, mais je ne suis pas sûr que jQuery traverse le DOM lorsqu'une propriété eventElement est déclarée ou uniquement lorsqu'un événement est attaché à l'événement eventElement.
S'il y a une perte de performance en utilisant l'approche ci-dessus, alors je branche dans l'espace de noms pour déclarer uniquement les eventElements dans le contexte de la section qui utilise ces eventElements.