防抖和节流的概念理解
防抖:
在事件被触发的n秒后执行回调,如果在这n秒内又被触发,则重新计时。
<script>
var timer=null,
function fangdou(fn,delay){
clearTimeOut(timer)
timer=setTimeOut(fn,delay)
}
function checkout(input){
fangdou(function(){
show(input.value)
},1000)
}
function show(val){
if(val && val.length < 7){
alert('长度不够啊,兄弟!')
}
}
</script>
节流:
在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效。
<script>
function throttle(func, wait) {
var context, args;
var timer;
return function() {
context = this;
args = arguments;
if (!timer) {
timer = setTimeout(function(){
timeout = null;
func.apply(context, args)
}, wait)
}
}
}
</script>