事件委托在哪些场景中使用,该如何使用,及其实现原理?
2017-07-23 10:57
609 查看
原理
事件的冒泡;通过父元素监听子元素触发的事件。DOM的遍历:父元素拥有多个子元素,当一个事件触发,那么就触发了某一类型的元素(拥有相同CLASS)
使用场景
很多商品放在一个ul下面的li标签里面,点击添加或删除商品,就可以绑定商品的父元素ul标签,通过事件代理去找到要点击的商品,完成添加删除事件
为什么要使用
绑定事件太多,浏览器占用内存变大,严重影响性能Ajax出现,局部刷新盛行,每次加载完,都要重新绑定事件
部分浏览器移除元素时,绑定的事件没有被及时移除,导致内存泄漏,严重影响性能
Ajax中重复绑定,导致代码耦合性过大,影响后期维护
什么时候使用
只在必须的时候,比如Ajax局部刷新区域绑定层级比较低的时候,不在body上绑定
绑定次数较少的时候,把多个事件绑定合并到一次事件委托中,由这个事件委托的回调,来进行分发
提高事件委托性能
降低绑定层级减少绑定次数
相关文章推荐
- 如何使用委托与事件来实现观察者模式
- 如何统计网站访问量,代码实现使用全局变量 Application,start,end,Session_start,Session_end事件
- 基于事件驱动的领域模型实现框架 - 分析框架如何解决各种典型业务逻辑场景
- C#中使用委托和事件实现观察者模式(observer pattern)
- 使用委托和事件实现观察者模式(Observer Pattern)
- 使用委托在用户自定义控件中实现事件响应
- ORM,ASP.NET中ORM学习,ASP.NET中ORM学习心得,WEB2.0中ORM实现原理,Asp.net简单ORM示例源码详细讲解,Asp.net2.0:如何使用ObjectDataSource(配合ORM )(二)
- 如何用委托与事件实现winfrom窗体之间值传递
- Jetty Continuation实现原理和使用场景分析
- 如何统计网站访问量,代码实现使用全局变量 Application,start,end,Session_start,Session_end事件
- C#_delegate - 用委托实现事件,Display和Log类都使用Clock对象
- 使用委托在用户自定义控件中实现事件响应
- 加强2注解。泛型。类加载器及其委托机制。代理的概念与作用原理,AOP概念。实现AOP功能的封装与配置。类似Spring。
- 使用委托和事件实现观察者模式(Observer Pattern)
- 在.NET2.0中如何更简单的使用委托将方法加载到事件中去
- .Net中使用事件和委托实现Observer模式(一)
- 如何实现一个HTML5 RPG游戏引擎——第三章,使用幕布实现场景切换
- 使用委托在用户自定义控件中实现事件响应
- C#中使用委托创建事件实现两个窗体间通信
- [置顶] 如何统计网站访问量,代码实现使用全局变量 Application,start,end,Session_start,Session_end事件