JS 实现文本域输入框截流
时间: 2023-08-12 19:30:34 浏览: 87
截流(throttle)指的是在一定时间内只执行一次函数,可以用于限制某些高频操作的触发次数,例如文本域输入框的输入事件。
以下是一个使用 JavaScript 实现文本域输入框截流的示例代码:
```javascript
function throttle(fn, delay) {
let timer = null;
return function() {
const args = arguments;
const context = this;
if (!timer) {
timer = setTimeout(function() {
fn.apply(context, args);
timer = null;
}, delay);
}
}
}
const textarea = document.querySelector('textarea');
textarea.addEventListener('input', throttle(function() {
console.log('输入了文本');
}, 500));
```
上面的代码中,`throttle` 函数接收两个参数:要执行的函数和延迟时间。它返回一个新的函数,每次执行该函数时,如果当前没有定时器,则会设置一个定时器,并在延迟时间后执行要执行的函数,并清除定时器。如果定时器存在,则不执行任何操作。
在上面的示例中,我们使用 `throttle` 函数来限制文本域输入事件的触发次数,每隔 500 毫秒才执行一次输入事件的处理函数。这样可以有效避免高频触发输入事件导致页面卡顿的问题。
阅读全文