函数节流的概念:当一个动作连续触发,则只执行最后一次
函数防抖的概念:控制一个动作在多长时间内执行一次
函数节流的使用场景:用户提交表单
函数防抖的使用场景:scroll事件 窗口resize事件
代码部分
// 简单版
const throttle = (func, timer) => {
let timer;
return () => {
if (timer) return;
}
timer = setTimeout(() => {
func()
timer = null
}, wait)
}
const _throttle = (func, wait) => {
const newTime = 0;
const currentTime = +new Date();
return () => {
if (newTime - currentTime > wait) {
func.apply(this, arguments)
newTime = +new Date()
}
}
}
const doubance = (func, wait) => {
let timer;
return () => {
clearTimeout(timer);
timer = setTimeout(func, wait)
}
}