1.防抖
什么是防抖?
动作绑定事件,触发事件,但不立即执行动作在一定时间后执行,在这段时间内,反复触发时间,则重新等待一定的时间后在执行动作。
通俗一点讲防抖就是多次触发,在停止触发一定时间后执行操作。常用于搜索时的优化,避免用户未输入完成不停的查询,还有防止多次点击按钮多次请求等等。
实现代码如下:
debounce(fn, delay) {
let timer = null;
return function () {
if(timer !== null) {
clearTimeout(timer)
}
timer = setTimeout(fn, delay)
}
}
}
博主认识的年轻人,最近都在说买房的事情,首付压力太大,月供指出工资余额不足,难上加难。
于是就有了这个公众号,分享我的理财经验和一些专业知识,希望能帮助大家提高睡后收入。
2.节流
下面我们聊聊节流,节流可以理解为在特定的时间内多次触发,只执行这段时间内的最后一次操作。
我们来看代码:这里采用的是时间戳+定时器的方式
throttle(fn, delay) {
let timer = null,
startTime = new Date();
return function () {
let curTime = new Date();
let remaining = delay - (curTime - startTime);
clearTimeout(timer)
if(remaining <= 0) {
startTime = new Date();
fn.apply(this, arguments);
}else {
timer = setTimeout(fn, remaining)
}
}
}