js节流和防抖实现方法
时间: 2023-07-09 14:30:11 浏览: 124
JS中节流和防抖都是为了减少函数执行的次数,提高性能。
1. 节流的实现方法:
节流函数会在一定时间内只执行一次,比如每隔1000ms执行一次函数。
```javascript
function throttle(fn, delay) {
let timerId = null;
return function() {
const context = this;
const args = arguments;
if (!timerId) {
timerId = setTimeout(function() {
fn.apply(context, args);
timerId = null;
}, delay);
}
}
}
```
2. 防抖的实现方法:
防抖函数会在一定时间内只执行一次函数,比如在用户连续输入时,只有输入停止后才会执行函数。
```javascript
function debounce(fn, delay) {
let timerId = null;
return function() {
const context = this;
const args = arguments;
clearTimeout(timerId);
timerId = setTimeout(function() {
fn.apply(context, args);
}, delay);
}
}
```
以上是两种常见的JS节流和防抖实现方法,可以根据实际需求进行选择。
阅读全文