1、节流demo 抢购按钮限制多长时间点击一次
<button id="btn">立即抢购</button><span id="show">0</span>
var oBtn = document.getElementById('btn');
function throttle(handler,wait){
var lastTime = 0;
return function(e){
var nowTime = new Date().getTime();
if(nowTime - lastTime > wait){
handler.apply(this,arguments);
lastTime = nowTime;
}
}
}
function buy(e){
console.log(this,e);
oDiv.innerText = parseInt(oDiv.innerText) + 1;
// 业务逻辑开发
}
oBtn.onclick = throttle(buy,1000);
2、防抖demo input输入完成之后请求后台做对比
<input type="text" id="inp">
function debounce(handler,delay){
var timer = null;
return function(){
var _self = this,_arg = arguments;
clearTimeout(timer);
timer = setTimeout(function(){
handler.apply(_self,_arg);
},delay);
}
}
function ajax(e){
console.log(e,this.value);
// 业务逻辑开发
}
oInp.oninput = debounce(ajax,2000);