今天我们一起来学习一下什么是事件代理和事件委托
3.什么是事件带和事件委托
事件代理和事件委托来源于事件冒泡机制,一个交互丰富的网页,离不开各种复杂的事件,事件太多就会造成网页性能下降,有内存泄露的风险,事件代理和事件委托可以使对象不被直接接触,避免内存泄露和网页性能下降的风险
事件委托:当网页中需要触发事件的对象比较多时,为了避免内存泄露,把事件委托到其父对象上,借助事件冒泡机制,可以将事件委托到body,document等元素上,这样一个页面就只有一个事件触发,避免直接把事件添加到多个对象上。(元素A将事件委托给自己的父元素B去处理,A就是事件的委托方,B就是事件的代理方)
事件代理:与事件委托是同一件事,只是站在不同的角度说的
(使用场景1:文件列表页,每条列表上有删除,复制,移动,重命名等事件触发按钮,当列表超过一定数量(2000)的时候,点击任何一个按钮浏览器都会非常的卡,这个时候就可以使用时间委托)
(使用场景2:当JS需要动态添加元素,直接添加事件是无法获取到对象的,事件不会生效,这时需要将事件委托到其父元素上才可以生效)
在构建应用程序时,有时需要将事件绑定到页面上的按钮,文本或图像,以便用户与元素交互时执行某些操作。
以一个简单的代办事项列表为例,当用户点击列表中的一个列表项时执行某些操作,
页面事件都可以委托到document上,可以防止内存泄露,当然网页性能并非依靠事件委托就可以搞定,还有很多其他的渠道需要去注意。