js函数防抖和函数节流
2021-01-02 17:50
399 查看
函数防抖(debounce)
概念:在事件被触发 n 秒后再执行回调,如果在这 n 秒内又被触发,则重新计时。
function debounce(fn, wait) {
var timer = null;
return function() {
var context = this;
var args = arguments;
if (timer) {
clearTimeout(timer);
timer = null;
}
timer = setTimeout(function() {
fn.apply(context, args);
}, wait);
};
}
函数节流 throttle
概念: 规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。
function throttle(fn, gapTime) {
let _lastTime = null;
return function() {
let _nowTime = +new Date();
if (_nowTime - _lastTime > gapTime || !_lastTime) {
fn();
_lastTime = _nowTime;
}
};
}
相关文章推荐
- js函数防抖与函数节流
- js函数防抖与函数节流
- 定时器 异步/回调 函数节流
- ja面试 函数的节流和防抖
- 函数节流和函数防抖
- JavaScript基础 - 手写节流和防抖函数
- 函数去抖(debounce)与 函数节流(throttle)
- JS 函数节流和去抖
- JS奇淫巧技:防抖函数与节流函数
- 防抖和节流函数
- JavaScript 频繁发射事件处理的优化 --- 函数节流/事件稀释
- 优雅实现防抖与节流函数
- JavaScript 函数节流和函数去抖应用场景辨析
- JavaScript节流和防抖函数与及使用分时函数惰性函数优化性能
- 函数防抖与函数节流
- Javascript性能优化之 函数节流技术
- js 函数节流
- js延迟执行dom操作(函数节流)
- js的函数防抖与函数节流
- 函数节流与函数防抖