一、以页面滚动事件为例
document.getElementById("body").onscroll = function () {
console.log("频繁执行")
}
var doNext = true;
document.getElementById("body").onscroll = function () {
if (!doNext) {
return;
}
setTimeout(function () {
console.log("函数节流");
doNext = true;
}, 300);
doNext = false;
};
三、防抖(间隔不超过规定时间的连续事件,只在最后一次生效)
var timer = false;
document.getElementById("body").onscroll = function () {
clearTimeout(timer); //间隔不到300ms,取消上一次事件,重新订阅
timer = setTimeout(function () {
console.log("函数防抖");
}, 300);
};