js防抖
不管触发多少次事件,都会等到事件触发n秒后才会执行,如果在事件触发的 n 秒内 又触发了这个事件,那么就以新的事件的时间为准重新计算,总之,就是要等你触发事件 n 秒内 不再触发事件,才会执行,一般用在用户表单输入实时搜索上
1 function debounce(fn, wait) { 2 let timer; 3 return function () { 4 clearTimeout(timer); 5 timer = setTimeout(() => { 6 fn.apply(this, arguments) // 把参数传进去 7 }, wait); 8 } 9 }