JavaScript 函数防抖是一种技术,用于解决在特定
时间段内连续触发事件时
产生的问题。当一个事件被触发时,通过设定一个特定的延迟时间,在这个延迟时间内如果事件再次触发,则重新计时。只有当事件没有在延迟时间内再次触发时,才会执行事件的处理函数。这样可以防止事件的频繁触发
,提高代码的性能表现。
function antiShakeFunction(fn: Function, waitTime: number): Function {
let timeId = null;
return function () {
const currentThis = this;
if (timeId) clearTimeout(timeId);
const parameter = Array.prototype.slice.call(arguments, 0);
timeId = setTimeout((): <void> => {
fn.apply(currentThis, parameter);
}, waitTime);
}
}
//演示调用
// <input type="text" id="test">
const input = document.querySelector("#test");
input.addEventListener("input", antiShakeFunction((e) => {
console.log("防抖成功", this, e);
}, 2000))
🚵♂️ 博主座右铭:向阳而生,我还在路上!
——————————————————————————————
🚴博主想说:将持续性为社区输出自己的资源,同时也见证自己的进步!
——————————————————————————————
🤼♂️ 如果都看到这了,博主希望留下你的足迹!【📂收藏!👍点赞!✍️评论!】
——————————————————————————————