Js实现防抖函数喝节流函数
时间: 2024-06-15 10:08:06 浏览: 201
防抖节流函数js封装模块
当我们在JavaScript中处理一些频繁触发的事件时,比如窗口调整大小、滚动等,防抖函数和节流函数可以帮助我们优化性能。
防抖函数(Debounce)是指在事件触发后等待一段时间后再执行回调函数,如果在等待时间内再次触发了该事件,则重新计时。这样可以避免频繁触发事件导致的性能问题。
以下是一个简单的JavaScript实现防抖函数的例子:
```javascript
function debounce(func, delay) {
let timer;
return function() {
clearTimeout(timer);
timer = setTimeout(func, delay);
};
}
```
在上面的例子中,`debounce`函数接受两个参数:`func`是要执行的回调函数,`delay`是等待的时间间隔。返回的函数会在事件触发后等待`delay`毫秒后执行回调函数。
节流函数(Throttle)是指在一定时间间隔内只执行一次回调函数,无论事件触发多频繁。这样可以控制事件的触发频率,避免过多的计算和渲染。
以下是一个简单的JavaScript实现节流函数的例子:
```javascript
function throttle(func, delay) {
let timer;
return function() {
if (!timer) {
timer = setTimeout(() => {
func();
timer = null;
}, delay);
}
};
}
```
在上面的例子中,`throttle`函数接受两个参数:`func`是要执行的回调函数,`delay`是时间间隔。返回的函数会在事件触发后等待`delay`毫秒后执行回调函数,但如果在等待时间内再次触发了该事件,则不会重新计时。
阅读全文