一、实现防抖函数
防抖函数原理:在事件被触发n秒后再执⾏回调,如果在这n秒内⼜被触发,则重新计时。
手写简化版:
// 防抖函数
const debounce = (fn, delay) => {
let timer = null;
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => { fn.apply(this, args); }, delay);
};
};
适⽤场景:
- 按钮提交场景:防⽌多次提交按钮,只执⾏最后提交的⼀次 。
- 服务端验证场景:表单验证需要服务端配合,只执⾏⼀段连续的输⼊事件的最后⼀次,还有搜索联想词功能类似 。
补充:(生存环境请用lodash.debounce)