用jq给我写一个节流函数
时间: 2024-09-20 18:07:06 浏览: 42
在JavaScript中,我们可以使用Underscore.js库的`_.throttle`函数来创建一个简单的节流(Throttle)功能,如果没有 Underscore.js,也可以自定义一个。以下是使用`_.throttle`的例子:
```javascript
if (typeof _ !== 'undefined') { // 如果有Underscore.js库
var throttle = _.throttle(function(func) {
// 这里是你的函数体
console.log('Function executed with throttle');
}, 500); // 每隔500毫秒执行
// 调用节流后的函数
setInterval(throttle, 100); // 每100毫秒触发一次,但实际上每500毫秒只会执行一次
} else {
function throttle(func, delay) {
let lastExecTime = null;
return function() {
const context = this,
args = arguments;
if (!lastExecTime || Date.now() - lastExecTime >= delay) {
func.apply(context, args);
lastExecTime = Date.now();
}
};
}
// 自定义实现的节流函数
var throttleFunc = throttle(function() {
console.log('Function executed with throttle');
}, 500);
// 使用方式同上
setInterval(throttleFunc, 100);
}
```
阅读全文