ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

js 防抖和节流

js 防抖和节流
// 实现防抖函数
function debounce(fn, delay, immediate = false) {// 实现let timer=null;let result=null;return function(...args){if(timer){clearTimeout(timer);timer=null;}if(immediate){const callnow=!timer;timer=setTimeout(()=>{timer=null;},delay);if(callnow){result=fn.apply(this,args);}}else{timer=setTimeout(()=>{result=fn.apply(this,args);},delay)}return result;}
}
function throttle(fn, limit) {let timer = null;let lastTime = 0;return function(...args) {const now = Date.now();const remaining = limit - (now - lastTime);// 清除之前的定时器if (timer) {clearTimeout(timer);timer = null;}// 应该立即执行if (remaining <= 0) {fn.apply(this, args);lastTime = now;} // 设置定时器延迟执行else {timer = setTimeout(() => {fn.apply(this, args);lastTime = Date.now();timer = null;}, remaining);}};
}

 

返回列表