前端防抖函数
时间: 2023-08-10 07:13:52 浏览: 126
前端防抖函数可以用来优化一些需要频繁触发的事件,比如窗口大小调整、输入框输入等,以减少不必要的计算和网络请求。
函数防抖的原理是在事件被触发 n 秒后再执行回调函数,如果在这 n 秒内又被触发,则重新计时。这里简单给出一个实现函数防抖的代码示例:
```javascript
function debounce(func, delay) {
let timer = null;
return function () {
const context = this;
const args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
func.apply(context, args);
}, delay);
};
}
```
其中,`func` 是需要进行防抖的函数,`delay` 是防抖的时间间隔。该函数返回一个新函数,当新函数被调用时,会清除之前的计时器,并重新设置计时器。如果在 `delay` 时间内再次调用该函数,则会重新计时。
例如,对于一个输入框,我们希望在用户输入结束后 500ms 内才进行搜索操作,则可以使用以下代码:
```javascript
const input = document.querySelector('input');
const search = debounce(function () {
// 执行搜索操作
}, 500);
input.addEventListener('input', search);
```
阅读全文