编程语言
首页 > 编程语言> > javascript – 停止事件冒泡 – 提高性能?

javascript – 停止事件冒泡 – 提高性能?

作者:互联网

如果我没有从事件回调返回false,或者使用jQuery的e.stopPropagation功能,那么事件就会冒泡DOM.

在大多数情况下,我不关心事件是否冒泡.与此DOM结构示例一样:

​<div id="theDiv">
    <form id="theForm" >
        <input type="submit" value="submit"/> 
    </form>
</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

通常,我没有像这样的多个嵌套提交回调:

$('#theDiv').submit(function() {
    alert('DIV!');
});
$('#theForm').submit(function(e) {
    alert('FORM!');
    e.preventDefault();
});​

Fiddle
该DEMO显示提交事件气泡到< div>!
如果我停止传播或仅阻止默认,它对我没有区别.

在这些情况下,如果我停止传播,我将获得性能优势?

解决方法:

性能优势?是的,有一些微不足道的好处,如this performance test between jQuery live() and on()所述.正如@Joseph所指出的那样,两者之间的区别在于,live会一直向上传播到树上,而on()只会传递到最近的公共父对象.

在那些测试中,显示on()可以比live()高出4倍.在实践中,这可能仍然不值得分裂,但如果你有非常深的html结构和许多事件触发器,我认为停止传播的性能差异是值得的.

标签:jquery,javascript,javascript-events,performance,event-propagation
来源: https://codeday.me/bug/20190613/1233897.html