防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
节流,就是指连续触发事件但是在 n 秒中只执行一次函数。
很多人写防抖就套上个setTimeOut,然后对这个定时器也没有啥处理,其实只是推迟了执行时间,对触发频率好像没有什么作用
做防抖的时候 如果不执行函数 setTimeOut是要清掉的
最简单的防抖,大概如下这段
function debounce(func, wait) {
var timeout;
return function () {
clearTimeout(timeout)
timeout = setTimeout(func, wait);
}
}