关于事件优化

关于事件绑定

以如下的DOM举例

<ul>
        <li> </li>
        <li> </li>
        <li> </li>
        ...
        <li> </li>
</ul>

如果想要对所有的li标签进行绑定Click事件,传统写法是对每个li进行onClick。都知道在Js中每个函数都是会占用内存的,内存中的函数越多,整体性能就越差。

解决方案就是使用事件委托,将事件绑定在li标签的上层,例如ul。当然也可以在往上。

在Jquery中提供了bind、live、delegete以及on方法来实现对事件的委托

  • bind 只存在的对象,当新增元素时不能委托
  • live 默认绑定到document ,如果DOM嵌套结构很深,事件冒泡会导致性能损失;
  • delegete 自选绑定到某个对象
  • on 建议

事件委托的原理在于利用事件冒泡

关于事件冒泡

对于事件冒泡,这就涉及到DOM0、DOM2

大体DOM0、DOM2区别在于:

1.Dom0 只支持冒泡,Dom2 均支持可指定事件触发的阶段

2.Dom0同个对象添加多个事件会覆盖,Dom2不覆盖

另外得注意的是,对于不同的浏览器,事件冒泡的节点还不一样。

建议:

当DOM嵌套结构不是很深时,可将事件委托给在body内最外层的div,例如<div class=‘container‘></div>

时间: 2024-08-06 10:52:08

关于事件优化的相关文章

ORACLE AWR报告之 log file sync等待事件优化的总结【转自ITPUB】

来自白大师(白鳝)对log file sync等待事件优化的总结,供各位puber们学习参考: 一. log file sync平均等待事件时间超过7ms,如果等待时间过长,说明log write每次写入的时间过长,如果能够优化redo日志文件存储,使之存放在更快的磁盘上,就可以减少这个等待事件的单次等待时间.(RAID 5--> RAID 10)   当无法通过优化redo日志的I/O性能来解决问题,或者优化了redo日志的I/O性能后还是无法达到我们的预期,那么该如何处理呢? 二. 有经验的

db file async I/O submit 等待事件优化

db file async I/O submit 等待事件优化 一.数据发生db file async I/O submit 我们从数据库awr报告中经常会看到很高db file async I/O submit的等待事件: SQL> select event,wait_class,wait_time from v$session_wait where wait_class<>'Idle' EVENT WAIT_CLASS WAIT_TIME ----------------------

高性能 内存 事件优化

为什么要优化: 1.每一个函数都是一个对象,会占用内容 2.需要添加事件的Dom节点越多,就要花更多的时间去给那些节点添加处理函数,延迟整个页面的交互,因为先得把事件都加上去 : ( 优化1:使用事件代理 <ul id=”myLinks”> <li id=”goSomewhere”>Go somewhere</li> <li id=”doSomething”>Do something</li> <li id=”sayHi”>Say h

jQuery事件对象的作用(利用冒泡事件优化)

事件中的Event对象容易被初学者忽略掉,可能大多时候初学者不知道怎么去用它,但有些时候它还是非常有用的 一个标准的"click"点击事件 $(elem).on("click",function(event){ event //事件对象 }) 在不同浏览器之间事件对象的获取, 以及事件对象的属性都有差异.jQuery根据 W3C 标准规范了事件对象,所以在jQuery事件回调方法中获取到的事件对象是经过兼容后处理过的一个标准的跨浏览器对象 这里不在千篇一律的说方法的

hover事件优化(延时操作)

JQ的hover事件拓展 编写原因:当鼠标滑过某个带有hover事件的元素,但是仅仅是路过,并不是希望查看此部分内容的时候,效果不理想 $.fn.extend({ delayed : function(fn1,fn2,time){ time = time || 150 var _this = this; _this.delayedTimer = null; return $(this).mouseenter(function(){ clearTimeout(_this.delayedTimer)

oracle之 等待事件LOG FILE SYNC (awr)优化

log file sycn是ORACLE里最普遍的等待事件之一,一般log file sycn的等待时间都非常短 1-5ms,不会有什么问题,但是一旦出问题,往往都比较难解决.什么时候会产生log file sync等待?常见有以下几种:1)commit操作2)rollback操作3)DDL操作(DDL操作实施前都会首先进行一次commit)4)DDL操作导致的数据字典修改所产生的commit5)某些能递归修改数据字典的操作:比如查询SEQ的next值,可能会导致修改数据字典.一个典型的情况是,

键值转换--复杂按键事件识别程序(链接层-优化版)

复杂按键事件识别程序(链接层-优化版) 本文相对于键值转换--复杂按键事件识别程序(链接层)文章中所述的按键事件转换程序进行优化(原来的代码太多,太杂,不易于维护). 优点:代码简洁,易于修改和阅读. 缺点:无法区分某一特殊按键在不同的系统状态下的按键时间(比如同一个键在不同的情况下可以长按3s或则5s),连按和长按不能同时存在(也可以加条件进行区分). 复杂按键包括多个按键的单按事件.长按事件.连按事件.组合按键事件等... 单按事件在按下键松开时判定,其它按键情况在达到规定的时间后触发相应按

HTML页面优化

第一步:加载优化 减少HTTP请求. 因为手机浏览器同时响应请求为4个请求(Android支持4个,iOS 5后可支持6个),所以要尽量减少页面的请求数,首次加载同时请求数不能超过4个.a) 合并CSS.JavaScript:b) 合并小图片,使用雪碧图(CSS SPRITE):   缓存. 使用缓存可以减少向服务器的请求数,节省加载时间,所以所有静态资源都要在服务器端设置缓存,并且尽量使用长Cache(长Cache资源的更新可使用时间戳). a) 缓存一切可缓存的资源:b) 使用长Cache(

移动H5前端性能优化指南

概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网络平均338KB/s(2.71Mb/s),所以首屏资源不应超过1014KB5. Mobile侧因手机配置原因,除加载外渲染速度也是优化重点6. 基于第五点,要合理处理代码减少渲染损耗7. 基于第二.第五点,所有影响首屏加载和渲染的代码应在处理逻辑中后置8. 加载完成后用户交互使用时也需注意性能优化指南 [加载优化] 加载过程