js节流和防抖
- 函数节流:当一个函数在大于等于某个周期时间才执行,如果在周期内是不执行的。
- 函数防抖:短时间内多次触发一个事件,只执行最后一次,或者执行最开始的一次,当在等待时间内再次触发事件时 重新开始计时。
节流代码
function thorttle(time,text) {
var timer = 0//初始时间 0s
return function(){ //返回一个函数
var nowTime = new Date().getTime();//获取当前的时间
if (nowTime - timer >= time) {//判断是否大于等于需要执行的时间
text();//调用
timer = nowTime;//将初始时间赋值为现在的时间 返回出去
}
}
}
function text() {
te.innerText = Number(te.innerText) + 1
}
btn.onclick = thorttle(3000, text)
防抖
function fangdou(time, caozuo) {
var timer = null;
return function () {
clearTimeout(timer);
timer = setTimeout(function () {
wenben();
}, time)
}
}
function wenben() {
console.log(te.value)
}
te.oninput = fangdou(2000, wenben);