生产一个用js防抖函数
时间: 2024-04-15 16:26:29 浏览: 83
当然,我可以帮你生成一个用 JavaScript 编写的防抖函数。以下是一个简单的实现:
```javascript
function debounce(func, delay) {
let timeoutId;
return function(...args) {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
func.apply(this, args);
}, delay);
};
}
```
这个防抖函数接受两个参数:要防抖的函数(func)和延迟时间(delay)。它会在函数被调用后延迟指定时间执行,如果在延迟时间内再次调用该函数,则会取消上一次的延迟执行,并重新计时。
使用示例:
```javascript
function handleInput() {
console.log('Input event debounced');
}
const debouncedHandleInput = debounce(handleInput, 300);
// 在 input 元素上添加事件监听
document.querySelector('input').addEventListener('input', debouncedHandleInput);
```
在上面的示例中,handleInput 函数会被防抖处理,延迟时间为 300 毫秒。每当 input 元素触发 input 事件时,debouncedHandleInput 函数会被调用,但只有在连续触发事件后超过 300 毫秒才会执行 handleInput 函数。这可以有效地避免频繁触发事件时导致的性能问题。
阅读全文