作家
登录

高性能滚动scroll及页面渲染优化

作者: 来源: 2017-04-26 09:25:20 阅读 我要评论

防抖技巧等于可以把多个次序地调用归并成一次,也就是在一准时光内,规定事宜被触发的次数。

通俗一点来说,看看下面这个简化的例子:

  1. // 简单的防颤抖函数 
  2.  
  3. function debounce(func, wait, immediate) { 
  4.  
  5.     // 准时器变量 
  6.  
  7.     var timeout; 
  8.  
  9.     return function() { 
  10.  
  11.         // 每次触发 scroll handler 时先清除准时器 
  12.  
  13.         clearTimeout(timeout); 
  14.  
  15.         // 指定 xx ms 后触发真正想进行的操作 handler 
  16.  
  17.         timeout = setTimeout(func, wait); 
  18.  
  19.     }; 
  20.  
  21. }; 
  22.  
  23.   
  24.  
  25. // 实际想绑定在 scroll 事宜上的 handler 
  26.  
  27. function realFunc(){ 
  28.  
  29.     console.log("Success"); 
  30.  
  31.  
  32.   
  33.  
  34. // 采取了防颤抖 
  35.  
  36. window.addEventListener('scroll',debounce(realFunc,500)); 
  37.  
  38. // 没采取防颤抖 
  39.  
  40. window.addEventListener('scroll',realFunc);  

膳绫擎简单的防抖的例子可以拿到浏览器部属一下,大年夜概功能就是如不雅 500ms 内没有持续触发两次 scroll 事宜,那么才会触发我们真正想在 scroll 事宜中触发的函数。

膳绫擎的示例可以更好的封装一下:

  1. // 防颤抖函数 
  2.  
  3. function debounce(func, wait, immediate) { 
  4.  
  5.     var timeout; 
  6.  
  7.     return function() { 
  8.  
  9.         var context = this, args = arguments; 
  10.  
  11.         var later = function() { 
  12.  
  13.             timeout = null
  14.  
  15.             if (!immediate) func.apply(context, args); 
  16.  
  17.         }; 
  18.  
  19.         var callNow = immediate & !timeout; 
  20.  
  21.         clearTimeout(timeout); 

      推荐阅读

      人工智能技术在移动互联网发展中的应用

    智能化需求表如今两个方面跟着移动互联网的成长进入新的偏向,移动互联网中的智能化已经成为新的成长趋势和重要需求。智能化需求今朝重要表如今两个方面:一方面是促生新的智能化应用,如>>>详细阅读


    本文标题:高性能滚动scroll及页面渲染优化

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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