js事件委托
今天呢,咱们来说说事件委托,有的相关资料叫事件代理. 首先呢,先来讲讲事件委托的起源:由于事件处理程序可以为web应用提供交互能力,因此很多开发人员会不分青红皂白的向页面中添加大量的处理程序.在js中,添加到页面的事件处理程序数量直接关系到页面的整体运维性能.导致这一问题的原因是多方面的.首先: 1 函数都是对象,都会占用内存,内存中对象越多,性能越差 2 事先指定所有的事件处理程序而导致dom访问次数,会延迟整个页面的交互的就绪事件. 所以:对事件处理程序过多问题的解决方案就是事件委托. 举个栗子 <ul id = 'ul1'> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> ... <li>100</li> </ul> 如果咱们页面上有100个li标签,如果要实现点击li变成红色,我们虽然可以用for循环,给每个li添加事件,那这样就为它们添加了100个事件处理程序,若在一个复杂的web程序中,都使用这种方式,那结果就是数不清的添加事件处理.那么这里是极其浪费资源的.所以这里可以得到一个结论: 事件委托,最重要的功能就是 提高程序运行效率. 既然出来了事件委托,那咱们讲讲事件委托的原理.先来个概念:事件流. 事件流分为 1.事件捕获