防抖是事件停止触发且过了某指定时间后执行一次,而函数节流是间隔某指定的单位时间执行一次。(控制高频事件执行次数)
debounce防抖
事件被触发后延迟n秒再执行回调,如果在这n秒内又被触发,则重新计时。
实现
具体实现:原理就是利用闭包
inp.oninput = debounce(function (event){
console.log(this.vlaue);
},500)
function debounce(fn, delay) {
let timerId = null;
return function (...args) {
if (timerId) {
clearTimeout(timerId);