什么是防抖函数和节流函数?
时间: 2024-06-16 17:08:50 浏览: 107
防抖函数和节流函数都是在前端开发中常用的函数优化技巧,用于控制函数的执行频率。
防抖函数(Debounce)是指在事件触发后,等待一段时间后再执行函数,如果在这段时间内再次触发了该事件,则重新计时。防抖函数常用于处理频繁触发的事件,例如窗口大小改变、输入框输入等。它可以避免函数被频繁调用,减少不必要的计算和网络请求。
节流函数(Throttle)是指在一定时间间隔内只执行一次函数。当事件触发时,如果在指定的时间间隔内再次触发该事件,则忽略该次触发。节流函数常用于处理高频率触发的事件,例如鼠标滚动、页面滚动等。它可以减少函数的执行次数,提升页面性能和用户体验。
下面是两者的简单实现示例:
防抖函数实现示例:
```javascript
function debounce(func, delay) {
let timer;
return function() {
clearTimeout(timer);
timer = setTimeout(() => {
func.apply(this, arguments);
}, delay);
};
}
```
节流函数实现示例:
```javascript
function throttle(func, delay) {
let timer;
return function() {
if (!timer) {
timer = setTimeout(() => {
func.apply(this, arguments);
timer = null;
}, delay);
}
};
}
```
阅读全文