作家
登录

如何监听页面 DOM 变动并高效响应

作者: 来源: 2017-08-11 18:40:12 阅读 我要评论

  • var throttle = function(fn, delay, mustRunDelay){ 
  •  
  •  var timer = null
  •  
  •  var t_start; 
  •  
  •  return function(){ 
  •  
  •     var context = this, args = arguments, t_curr = +new Date(); 
  •  
  •      
  •  
  •     // 清除准时器 
  •  
  •     clearTimeout(timer); 
  •  
  •      
  •  
  •     // 函数初始化断定 
  •  
  •     if(!t_start){ 
  •  
  •         t_start = t_curr; 
  •  
  •     } 
  •  
  •      
  •  
  •     // 超时(指定的时光距离)断定 
  •  
  •     if(t_curr - t_start >= mustRunDelay){ 
  •  
  •         fn.apply(context, args); 
  •  
  •         t_start = t_curr; 
  •  
  •     } 
  •  
  •     else { 
  •  
  •         timer = setTimeout(function(){ 
  •  
  •             fn.apply(context, args); 
  •  
  •         }, delay); 
  •  
  •     } 
  •  
  •  }; 
  •  
  • };  
  • 参考

    • https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded
    • https://developer.mozilla.org/zh-CN/docs/Web/Events/load
    • https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener
    • http://www.cnblogs.com/fsjohnhuang/p/4147810.html
    • http://www.alloyteam.com/2012/11/javascript-throttle/

    当然,AlloyTeam 那篇文┞仿将这里所说的截流函数作为撙节函数的 V1.0 版本,你也可以如许认为。毕竟,设置了必定触发履行的时光距离(即 mustRunDelay 函数),可以使得截流函数不会在“猖狂事宜”情况下无尽头的轮回下去。

    Observer 和截流函数一结合,问题解决啦嘿嘿。当然还有很多坑,下次再开一篇说说吧。

    【编辑推荐】

    1. 现代前端开起身术栈
    2. 前端模板的道理与实现
    3. 前端机能优化以及解决筹划
    4. 现代前端开起身术栈
    5. 前端实现文件的断点续传
    【义务编辑:枯木 TEL:(010)68476606】

      推荐阅读

      视频监控在智慧城市建设中的应用

    2015年全国两会上提出了“互联网+”概念使得聪明城市家当的搭建迎来了前所未竽暌剐的成长机会。中国在聪明城市上的投入早已跨越5000亿元,估计将来投资会上升到1.1万亿元,聪明>>>详细阅读


    本文标题:如何监听页面 DOM 变动并高效响应

    地址:http://www.17bianji.com/lsqh/36660.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)