En lisant une autre question sur les performances de jQuery, j'ai commencé à réfléchir au moment où il vaut la peine d'utiliser la délégation d'événements plutôt que de lier des éléments individuellement. Je pensais principalement à jQuery, mais je suppose que c'est probablement applicable pour Javascript en général.Combien d'éléments faut-il pour que la délégation d'événements en vaille la peine?
délégation de l'événement a deux objectifs principaux:
- permettant des gestionnaires de travailler sur des éléments qui n'ont pas encore été créés/insérés dans les DOM.
- liant une fonction à un élément ancêtre commun plutôt que de multiples éléments frères
Ma question concerne la seconde de celles-ci. La réponse générale sera probablement «cela dépend de la situation exacte», mais je me demande s'il existe une règle empirique ou une méthode d'analyse comparative pour tester cela.
Donc, la question est: combien d'éléments avez-vous besoin avant que les avantages de performance de la délégation d'événements l'emportent sur les coûts de performance?
Je ne connaître les coûts de performance de la délégation d'événements ... De quoi s'agit-il? Les événements éclatent quand même et la cible de l'événement est stockée dans la propriété correspondante de l'objet événement à tout moment. –
@Sime Le principal auquel j'avais pensé était que chaque fois qu'un événement est déclenché, le sélecteur de l'appel de délégué doit être exécuté pour vérifier s'il correspond à la cible de l'événement. Il peut y en avoir d'autres ... – lonesomeday
Considérons que lorsque vous utilisez la délégation, vous répartissez efficacement le coût des gestionnaires de liaison sur la durée de vie de la page. Lorsque vous liez en recherchant les éléments en premier, vous ajoutez plus de travail au moment du chargement de la page, lorsque les utilisateurs sont les plus sensibles aux retards. – Pointy