函数节流与函数防抖
2018-08-31 21:55
316 查看
简述:
- 在高性能的javascript当中,函数节流和函数防抖是两种非常重要的提高js效率的方法。其思想就是防止函数在短时间内多次触发,导致性能问题。
- 实现一般通过闭包,定时器等方式
实现:
函数节流:
方式:利用setTimeout延时触发函数,如果在延时前重复触发函数,清除上次延时,重新设定新的定时。
缺点:如果一直快速触发函数,会导致函数永远无法执行 示例://方法一: function throttle(func, delay){ return function(){ let args = arguments, context = this; clearTimeout(func.id); func.id = setTimeout(function(){ func.apply(context, args); }, delay); } } //方法二: function throttle(func, delay){ var timer = null; return function(){ var args = arguments, context = this; clearTimeout(timer); timer = setTimeout(function(){ func.apply(context, args); }, delay); } }
函数防抖:
方式:利用setTimeout延时触发函数,但需保证其在一段时间内至少触发一次,为节流的变种
示例function debounce(func, delay, mustRun){ var timer = null, start = null; return function(){ var args = arguments, context = this, cur = new Date(); clearTimeout(timer); if(!start){ start = cur; } if(cur-start>=mustRun){ func.apply(context, args); start = cur; }else{ timer = setTimeout(function(){ func.apply(context, args); }, delay); } } }阅读更多
相关文章推荐
- 函数节流 + 函数防抖
- JavaScript小知识点(二):函数防抖和节流
- 防抖函数和节流函数小列
- 页面优化之高性能函数防抖与节流
- [转载]函数节流与函数防抖
- JS奇淫巧技:防抖函数与节流函数
- JavaScript优化之函数节流与函数防抖
- 函数防抖与节流
- 节流或防抖:控制函数的执行
- js函数防抖、节流实现
- js中连续触发事件的稀释方法(函数节流、函数防抖、标识变量)
- 节流函数和防抖函数学习
- js函数节流和防抖
- 函数节流和防抖
- 事件委托、函数节流及防抖
- 函数节流与函数防抖
- 函数防抖和函数节流
- 理解JS的节流、防抖及使用场景
- js网络请求性能优化之防抖与节流
- JavaScript函数节流和函数防抖