什么是事件代理和事件委托

作者: 8fda73aa8a1f | 来源:发表于2016-02-01 13:35 被阅读4150次

    昨天讲过了事件冒泡,其实事件代理和事件委托就是来源于事件冒泡机制。经常写js的人应该都知道这个方法。一个交互丰富的网页,离不开各种复杂的事件,事件太多就会造成网页性能下降,有内存泄漏的风险。这个时候事件委托和事件代理就起大作用了,使对象不被直接触发,避免内存泄漏和网页性能下降的风险。

    那究竟什么是事件委托呢?

    事件委托就是:当网页中需要触发事件的对象比较多的时候,为了避免内存泄漏,我们把事件委托到其父对象上,借助事件冒泡机制,可以将事件委托到body,document等元素上,这样等于一个页面就只有一个事件触发,避免直接把事件添加到多个对象上。

    曾经做过一个项目,是一个云存储服务的网站,有一个文件列表页,每条列表上面有删除、复制、移动,重命名等事件触发按钮。当列表的条数超过一定数量的时候,比如超过2000条,点击任何一个按钮浏览器都会非常卡,这个时候事件委托就起大作用了。

    还有一个使用场景,就是js动态添加的元素,直接添加事件是无法获取到对象的,事件不会生效。这个时候就需要将事件委托到其父对象上方能生效。jquery的delegate,on等都是为事件委托提供的方式。

    页面的事件建议可以都委托到document上,可以防止内存泄漏,当然网页的性能并非就依靠事件委托就能搞定的,还有其他很多的渠道需要去注意。

    好了,今天就讲这么多了,有机会我会讲事件委托的相关内容视屏演示给大家的。

    下周二即将为大家推出第二堂视频分享课程,敬请期待。

    相关文章

      网友评论

      本文标题:什么是事件代理和事件委托

      本文链接:https://www.haomeiwen.com/subject/ygyskttx.html