Si je ne retourne pas Dans la plupart des scénarios, je m'en fiche si les bulles d'événement ou non. Comme avec cet exemple de structure DOM: P> false code> à partir d'un rappel d'événement ou à l'aide de
e.stoppropagation code> de jQuery, les bulles d'événement en haut de la DOM.
$('#theDiv').submit(function() {
alert('DIV!');
});
$('#theForm').submit(function(e) {
alert('FORM!');
e.preventDefault();
});â
3 Réponses :
Voici une comparaison entre Mais je suggère de faire vos propres repères pour vérifier. p> sur ( ) CODE> et
LIVE () CODE> Qui impliquent Boubellement et la raison JQUERY remplacée
live () code>. Le problème avec
live () code> était que ces événements étaient attachés au document, ce qui entraîne une longue parculion de l'arbre pour trouver le gestionnaire. Ce que vous pouvez faire avec
on () code> est que vous pouvez attacher le gestionnaire au parent commun le plus proche, évitant ainsi la longue parculion de l'arbre à la recherche d'un gestionnaire - ce qui signifie des performances plus rapides. P>
Prestations de performance? Oui, il existe de légers avantages, comme indiqué dans ce test de performance entre jQuery Dans ces tests, il est montré que live () code > et
. Comme @joseph a également noté, la différence entre les deux est que Live se propage de tout le chemin de l'arborescence, tandis que sur () code>
on () code> ne va que sur le parent commun le plus proche. P>
on () code> peut surperformer
live () code> jusqu'à 4 fois. En pratique, cela ne vaut probablement toujours pas la peine de diviser les poils, mais si vous avez des structures HTML très profondes et de nombreux déclencheurs d'événements, la différence de performance dans l'arrêt de la propagation peut être utile, je suppose. P>
En effet, Live () est maintenant obsolète pour cela et d'autres raisons.
Ce test montre qu'il existe un avantage de performance pour tuer l'événement tôt. (15% -30%) et il y aurait probablement une plus grande différence sur un DOM complexe. Il est également intéressant de noter que la capture des auditeurs d'événements semblent être légèrement plus rapides que les auditeurs d'événements de barbillage, peu importe ce que vous faites avec l'événement après la manipulation. Étrange mais intéressant; Je n'ai testé que dans un navigateur si p>
Il ne devrait pas avoir d'effet quoi que ce soit, peut-être même un coup depuis le navigateur des milliers d'événements tout le temps, il ne s'agit pas nécessairement de ne pas les buller uniquement s'il y a un auditeur.
@Robig. C'est pourquoi je veux l'annuler ...
Pourquoi ne-tu pas la benchmark? En théorie, arrêt de la propagation = moins à faire = plus rapide. En pratique, cela dépend des détails de la mise en œuvre du navigateur et sera probablement à peine perceptible de toute façon.