美文网首页
性能优化——事件代理

性能优化——事件代理

作者: 沈墨空 | 来源:发表于2017-03-24 14:23 被阅读0次

了解过JS的事件机制应该知道JS的事件触发后会有一个冒泡阶段。
事件代理就是利用了这个机制。

我们考虑这样一个情况

var ulNode = document.getElementById("ulNode");
var fragment = document.createDocumentFragment();

for (let i = 0;i < 10;i++){
  var liNode = document.createElement("li");
  liNode.innerText = "node" + i;
  liNode.addEventLinstener("click",function(event){
    console.log("you click" + event.target.innerText);
  });
  fragment.appendChild(liNode);
}

ulNode.appendChild(fragment);

在这里我们为每一个li节点都绑定了一个点击事件,这无疑是不效率的做法。而利用冒泡机制我们可以讲事件委托给父节点ul,这样就只需要绑定一个事件。

var ulNode = document.getElementById("ulNode");
var fragment = document.createDocumentFragment();

for (let i = 0;i < 10;i++){
  var liNode = document.createElement("li");
  liNode.innerText = "node" + i;
  fragment.appendChild(liNode);
}

ulNode.addEventLinstener("click",function(event){
  if(event.target.tagName.toLowerCase() === 'li'){
    console.log("you click"+event.target.innerText);
  }
}
ulNode.appendChild(fragment);

参考:https://segmentfault.com/a/1190000000490322

相关文章

  • 性能优化——事件代理

    了解过JS的事件机制应该知道JS的事件触发后会有一个冒泡阶段。事件代理就是利用了这个机制。 我们考虑这样一个情况 ...

  • NGINX优化

    Nginx性能优化实践 1.性能优化概述 2.系统性能优化 3.代理服务优化 4.静态资源优化 4.1 静态资源缓...

  • 前端性能优化汇总

    前端性能优化汇总(尽量干货一些):1.减少事件注册,尽量利用事件冒泡原理进行事件代理,注册到父级元素上,减少内存开...

  • 性能优化

    性能优化 代码层面: 缓存利用 请求数量 请求带宽 总的来说 移动端性能优化 具体优化 加号操作符 事件委托 避免...

  • React生命周期、组件声明、性能优化

    生命周期 声明组件 事件绑定 JSX 性能优化

  • 绑定事件优化---事件代理

    在DOM事件对象中有两个属性总是时不时的困扰我,就是target和currentTarget,有时候很迷惑分不清两...

  • Android性能优化 - 消除卡顿

    性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化 - 内存优化 性能分析工具 - Tra...

  • Android性能优化 - 内存优化

    性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化- 内存优化 性能分析工具 - Trac...

  • 前端性能优化(中)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(上)...

  • 前端性能优化(下)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(中)...

网友评论

      本文标题:性能优化——事件代理

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