防抖和节流

原问题为:什么是防抖和节流?有什么区别?如何实现?

相关参考:

自我总结:

防抖

高频事件触发后, n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间。

实现思路:

1
2
3
4
5
6
7
8
9
10
11
12
function debounce(func, awit) {
var timeout;
return function () {
var me = this;
var args = Array.protoType.slice.apply(arguments);
timeout && clearTimeout(timeout);
timeout = setTimeout(function () {
timeout = null;
func.apply(me, args);
}, awit);
};
}

节流

高频事件触发后,但在n秒内只会执行一次,所以节流会稀释函数的执行频率

防抖和节流区别:

假设一个用户一直触发这个函数,且每次触发函数的间隔小于wait,防抖的情况下只会调用一次,而节流的 情况会每隔一定时间(参数wait)调用函数。

-------------本文结束感谢您的阅读-------------
0%