优雅实现防抖与节流函数
2020-10-18 19:34
316 查看
定义
防抖:
防抖是指在一定的时间内再次触发此事件,会清空上次的事件重新开始,如果制定的时间内没有再次触发,那么这个事件才会执行。
节流:
节流是指在一定的时间同一事件只会触发一次,只有超过了这个时间才会再次触发。
使用场景
- 搜索框
- 按钮
- 监听滚动
- 频繁使用鼠标
总的来说:任何东西被频繁的调用都有可能需要防抖或者节流去优化
实现方式
防抖
function showLog() { console.log('show'); } /* * 防抖 思路: * 先开启一个定时任务执行,定时任务完成后则清空;当再调用时,如果定时任务仍存在则清空原来任务,创建新的定时任务 * */ function debounce(fn, space) { let task = null; return function (){ if(task) { clearTimeout(task); } task = setTimeout(fn.apply(this, arguments), space); } } // 使用 let debounceShowLog = debounce(showLog, 3000); debounceShowLog()
节流
/* * 节流 思路: * 先开启一个定时任务执行,定时任务完成后则清空,当再调用时,如果定时任务仍存在则不执行任何操作 * */ function throttle(fn, space) { let task = null; return function () { if(!task) { task = setTimeout(function () { task = null; fn.apply(this, arguments); }, space); } } } let throttleShowLog = throttle(showLog, 3000);
简单才是真爱
相关文章推荐
- js函数防抖、节流实现
- 一文看懂如何简单实现节流函数和防抖函数
- 【进阶 6-6 期】深入篇 | 阿里 P6 必会 Lodash 防抖节流函数实现原理
- 简单实现节流函数和防抖函数过程解析
- js中实现函数防抖跟函数节流
- 函数防抖节流的理解及在Vue中的应用
- 函数节流 + 函数防抖
- MPVUE 函数防抖与节流
- Ajax 04 ajax全局处理器跨域请求 | JSONP的跨域实现原理|节流防抖优化|HTTP协议
- 移动端事件(五)—— 函数防抖和函数节流的封装
- 函数防抖与节流
- JS节流和防抖函数
- 两张图彻底理解 函数节流和函数防抖
- JS 函数 节流 防抖
- 函数节流和防抖
- 函数防抖,节流
- 移动端事件(四)—— 函数防抖和函数节流
- 防抖和节流的简单实现
- ja面试 函数的节流和防抖
- 巧用STL中的绑定器和函数对象嵌套调用实现优雅高效的代码