实现一个简单的节流
//获取页面上的按钮,
var btn=document.getElementById('btn')
//使用节流,按钮在两秒之内狂按,只在两秒内的最后一次执行事件
btn.onclick=(throttling(app,2000))
//要执行的事
function app() {
console.log("执行了");
}
//节流 fn为执行函数,wait为等待的时间
function throttling(fn, wait){
let timer;
let context, args;
let run = () => {
timer=setTimeout(()=>{
fn.apply(context,args);
clearTimeout(timer);
timer=null;
},wait);
}
return function () {
context=this;
args=arguments;
if(!timer){
console.log("throttle, set");
run();
}else{
console.log("throttle, ignore");
}
}
}