防抖
防抖
当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时。
let input =document.querySelector('input')
function ajax(param) {
console.log(param);
}
input.addEventListener('input',(e) => {
debounceAjax(e.target.value)
})
function debounce(fn,wait) {
let timer = null
let that = this
return function(param) {
clearTimeout(timer)
timer = setTimeout(() => {
fn.call(that,param)
},wait)
}
}
let debounceAjax = debounce(ajax,1000)