面试题答案
一键面试事件节流原理
事件节流(Throttle)的原理是指在一定时间内,无论触发事件的频率有多高,都只执行一次回调函数。就像是给事件的触发加了一个阀门,规定在某段时间内只能通过一次水流(执行一次函数),即使水流(事件触发)很频繁,也不会连续通过。这样可以有效减少高频率事件触发时回调函数的执行次数,提升性能,避免因频繁执行某些操作(如 DOM 操作、网络请求等)而导致的性能问题。
代码实现
function throttle(func, delay) {
let timer = null;
return function() {
if (!timer) {
func.apply(this, arguments);
timer = setTimeout(() => {
timer = null;
}, delay);
}
};
}