前言
在进行窗口的resize、scroll、输入框内容等校验操作时,如果事件处理函数的调用频率太高,会加重浏览器的负担,使用户体验变差。此时可采用防抖函数(debounce)、
和节流函数(throttle)的方式来减少调用频率且不影响效果。
防抖函数
function debounce (fn,wait) {
var timeout = null;
return function () {
if (timeout !== null) {
clearTimeout(timeout);
}
timeout = setTimeout(fn,wait);
}
}
function handle () {
console.log(Math.random());
}
window.addEventListener('scroll',debounce(handle,100))