写一段节流代码
时间: 2023-07-10 19:16:18 浏览: 71
当用户在一段时间内频繁触发某个事件时,为了避免过于频繁地执行函数,可以使用节流函数。以下是一个简单的节流函数的示例代码:
```javascript
function throttle(func, delay) {
let timerId, lastTime = 0;
return function() {
const context = this;
const args = arguments;
const now = Date.now();
if (now - lastTime >= delay) {
func.apply(context, args);
lastTime = now;
} else {
clearTimeout(timerId);
timerId = setTimeout(() => {
func.apply(context, args);
lastTime = Date.now();
}, delay - (now - lastTime));
}
};
}
```
使用方式如下:
```javascript
function myFunc() {
console.log('throttled function called');
}
const throttledFunc = throttle(myFunc, 1000);
throttledFunc(); // will call myFunc immediately
throttledFunc(); // will be ignored because it's within 1000ms of the last call
```
这个节流函数的作用是,在指定的时间间隔内,只有第一次触发事件时才会执行函数。在此期间,如果有其他事件触发了函数,则会被忽略。这种技术在一些需要限制频率的场景(比如滚动事件等)中非常有用,可以避免过于频繁地执行函数。
阅读全文