JavaScript防抖和节流函数

这个知识点看过好多遍了,总感觉似懂非懂的感觉,参考了好几篇文章,总结一下方便日后查看复习。
先直接看代码:
防抖函数:

function debounce (fun, time) {
  var timer;
  return function () {
    clearTimeout(timer);
    timer = setTimeout(function () {
      fun.apply(this, arguments);
    }, time);
  }
}

节流函数:

function throttle (fun,time) {
  var t1 = 0;
  return function(){
    var t2 = new Date();
    if (t2 - t1 > time) {
       fun.apply(this, arguments);
       t1 = t2;
    }
  }
}

防抖:在不断的操作中(输入、点击等)最终只执行一次的一种提高性能的方法。
节流:一段时间内不断操作而在你规定的时间内只执行一次的一种提高性能的方法。

对于防抖和节流一个最主观的判断方法就是:
在10s内你疯狂点击一个按钮,如果使用了防抖则会只执行一次,而你使用了节流则会每隔一段时间执行一次,这个时间可以自己来掌控。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容