防抖
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 元素的值作为参数进行输出。
这样可以防止用户输入过快或者频率过高,导致向后台服务器发送重复的请求