比较精简的防抖、节流:
防抖(debounce):指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
精简:狂点按钮也没有用,等你冷静下来事件才会触发。
let time2;
document.getElementById(‘防抖’).onclick =
function () {
clearTimeout(time2);
time2=setTimeout(function () {
//做一些事情
},2000);
};
节流(throttle):在防抖函数里会有个时间限制,当函数在一次执行之后的这个时间限制范围内是不会再次发生的,再次触发的话又要等一个时间限制的时间
精简:持续触发事件,每隔一段时间内,只触发一次,像游戏里面的技能冷却功能(具体冷却功能是啥我也不清楚)
let bool=true;
document.getElementById(‘节流’).onclick = function () {
if(bool){
//做一些事情
bool=false;
setTimeout(()=>{
bool=true
},2000)
}
}
这个算是很简单易懂的,如果想要深入理解,请看这篇文章:
传送门