美文网首页
四、交互事件处理中 对内存和性能的影响

四、交互事件处理中 对内存和性能的影响

作者: 萘小蒽 | 来源:发表于2019-04-08 22:40 被阅读0次

在web交互中,如果无脑的在页面上添加大量事件处理程序,事件的处理程序数量直接关系到页面的整体运行性能。原因如下:

  1. 每个函数都是对象,都活占用内存;内存中的对象越多,性能就越差。
  2. 必须事先指定所有事件处理程序而导致的DOM访问次数,会延迟整个页面的交互就绪时间。

1. 事件委托

事件处理程序过多的解决方案就是事件委托了,它依赖于事件冒泡,只指定一个事件,对DOM元素加以判断。

<ul id="MyLinks">
 <li id="link1">去哪里呢?</li>
 <li id="link2">做什么呢?</li>
 <li id="link3">你好!!!</li>
</ul>

上面的html片段中有三个交互逻辑,事件委托就能将三个交互放在一个事件中。

var list = document.getElementById("MyLinks");
EventUtil.addHandler(list,'click',function(event){
    event = EventUtil.getEvent(event);
    var target = EventUtil.getTarget(event);
    switch(target.id){
     case "link1":
              document.title  = "改变页面title";
              break;
     case "link2":
              location.href = "xxx";
              break;
     case "link3":
              console.log("hi!!");
              break;
    }
})

2.移除事件处理程序

没当将事件处理程序制定给元素时,运行中的浏览器代码与支持页面交互的js代码之间就会简历一个连接 。这种连接越多,页面执行起来就越慢。

除了时间委托能减少事件的数量,我们还可以在事件处理程序不必要的时候移除它。

var btn = document.getElementById("mybtn");
btn.onclick = function(){
     //先执行某些操作
   btn.onclick  = null;
   document.getElementById("MyDiv").innerHTML = " processing....."
}

相关文章

  • 四、交互事件处理中 对内存和性能的影响

    在web交互中,如果无脑的在页面上添加大量事件处理程序,事件的处理程序数量直接关系到页面的整体运行性能。原因如下:...

  • JS-杂篇-18/4/7

    XMLHttpRequest请求 内存和性能 js事件处理程序数量将直接影响页面整体运行性能 事件委托 利用冒泡特...

  • 前端面试题总结

    1. 使用事件代理是避免什么性能问题? js绑定事件对性能的影响: 在js中每个函数都是对象,都会占用内存;内存中...

  • vue:巧用事件委托提升性能

    大量的事件处理函数会影响性能: 事件处理函数本质上是一种函数,是一种对象,存放在内存中,设置大量的事件处理函数会使...

  • Javascript中的事件委托与事件模拟

    内存和性能 事件类型是在太多了,直接跳到事件内存和型能这里 事件委托由于事件冒泡的原理,可以只盯一个事件处理程序,...

  • 【javascript】事件-内存性能&模拟事件

    内存和性能 在JavaScript 中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能。 导致这一问...

  • iOS 事件传递和处理

    前言 iPhone拥有很好的用户交互体验,这源于iOS系统对交互事件的高效处理和高优响应;App开发者处理用户交互...

  • iOS 事件传递和处理

    前言 iPhone拥有很好的用户交互体验,这源于iOS系统对交互事件的高效处理和高优响应;App开发者处理用户交互...

  • Unity-UI(UGUI详解)02.2 Interaction

    Interaction Components 交互组件在UI系统中处理交互事件,比如鼠标或者触摸事件 Select...

  • Netty-内存管理

    但是内存拷贝对性能有可能影响比较大,所以Java中可以绕开堆内存直接操作堆外内存,问题是创建堆外内存的速度比堆内存...

网友评论

      本文标题:四、交互事件处理中 对内存和性能的影响

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