节流防抖
函数防抖
【节流防抖】在事件被触发n 秒后在执行回调,如果在这n秒事件又被触发,则重新计时
函数节流
规定一个时间单位,在这个时间单位内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只能一次性生效
函数防抖的实现
function debounce(fn, wait) {
const timer = null;
return function() {
const context = this;
args = arguments;
// 如果此时存在定时器,则取消之前的定时器重新计时
if (timer) {
clearTimeout(timer);
timer = null;
}
// 设置定时器,使事件间隔指定事件后执行
timer = setTimeout(() => {
fn.apply(context, args);
}, wait)
}
}
函数节流的实现
function throttle(fn, delay) {
constcontent = this;
args = arguments;
const nowTime = Date.noew();
// 如果两次时间间隔超过了指定时间则执行函数
if(nowTime - preTime >= delay) {
const preTime = Date.now();
return fn.apply(content, args);
}
}
推荐阅读
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- 概率论/统计学|随机变量 的 分布函数 与 概率密度函数 的区别
- vue组件中为何data必须是一个函数()
- iOS-Swift-map|iOS-Swift-map filter reduce、函数式编程
- R语言|R语言 函数
- 2018-05-30闭包和函数
- 函数的一些东西