防抖
let input = doucument.querySelector('input')
input.addEventListener('keyup', debounce(function(){
})
)
function debounce(fn,wait) {
let timer = null;
return function() {
if(timer) clearTimeout(timer);
timer = setTimeout( () => {
fn.apply(this.arguments)
timer = null;
},wait)
}
}
作用:找到页面中第一个 input 元素,添加一个 "keyup" 事件监听器,当用户输入内容时,使用防抖函数 debounce 来限制事件的触发频率,每次事件最多只被触发一次。
防抖函数返回一个新函数,该函数会在一定时间内不执行,在该时间内如果再次触发了该事件,会清除之前的计时器并重新设置计时器。当计时器结束后,才会执行传入的函数并向后台服务器请求数据,同时将 input 元素的值作为参数进行输出。
这样可以防止用户输入过快或者频率过高,导致向后台服务器发送重复的请求