//防抖
function debounce(fn, delay) {
var timer = null;
// return function () {
// if (timer) clearTimeout(timer);
// var _this = this;
// var _arguments = arguments;
// timer = setTimeout(function () {
// fn.apply(_this,_arguments);
// }, delay);
// }
return (...arg)=>{
if (timer) clearTimeout(timer);
timer=setTimeout(()=>{
fn.apply(this,arg);
},delay)
}
}
//节流
function throttle(fn,delay){
var flag = true;
// return function (e){
// if(flag){
// setTimeout(() => {
// //到规定时间后执行函数,同时flag=true
// fn(this,arguments);
// flag = true;
// },delay);
// }
// //防止一直执行
// flag = false;
// };
return (...args)=>{
if(flag){
setTimeout(()=>{
fn(this,args);
flag=true
},delay)
}
flag=false
}
}
js防抖和节流函数
最新推荐文章于 2024-04-20 20:33:25 发布
本文深入探讨了JavaScript中两种重要的函数优化技术——防抖(debounce)和节流(throttle)。防抖函数用于限制函数在一定时间内被执行的次数,常用于窗口resize、滚动事件等场景,以提高性能。节流函数则确保函数在设定的时间间隔内只执行一次,适用于连续触发但不需要频繁响应的场景,如定时刷新数据。文中提供了详细的函数实现示例,帮助开发者更好地理解和应用这两种优化策略。
4022

被折叠的 条评论
为什么被折叠?



