用js写一个防抖截留
防抖截留(debounce)是一种常用的优化性能的方法,它可以限制函数的执行频率,降低事件回调的执行次数,提高页面的响应速度和流畅度。以下是一个用JavaScript实现防抖截留的例子:
// 定义防抖函数
function debounce(func, delay) {
let timer = null;
return function() {
let context = this;
let args = arguments;
clearTimeout(timer);
timer = setTimeout(function() {
func.apply(context, args);
}, delay);
}
}
// 使用防抖函数
let myFunc = debounce(function() {
console.log('防抖截留');
}, 1000);
myFunc(); // 不会立即执行函数,会在1000毫秒后执行
myFunc(); // 会清除前一个定时器,重新开始计时
在上面的例子中,我们定义了一个名为debounce的函数,它接受两个参数:func表示要执行的函数,delay表示延迟的时间。在debounce内部,我们定义了一个timer变量,它用来存储计时器的ID。每次调用debounce时,它会返回一个新的函数,这个函数会在delay毫秒后执行func函数。如果在delay毫秒内又调用了这个函数,它会清除之前的定时器,重新开始计时。
使用防抖截留可以避免连续触发同一事件时,频繁地更新页面或发送请求的问题,从而提高用户体验和页面性能。
原文地址: http://www.cveoy.top/t/topic/GEQ 著作权归作者所有。请勿转载和采集!