防抖与节流

防抖(debounce):

用于处理持续触发事件。持续触发事件,在n秒内没有继续触发事件,则执行一次事件处理函数,如果在n秒内触发了该事件,则重新开始计时。

var timer;
function debounce( fn ) {
  clearTimeout(timer)
  timer = setTimeout(fn,1000)
}
//此案例在1000毫秒以内如果没有触发,则执行一次fn函数,如果触发了,则从新计时

节流(throttle):

用于处理持续触发事件。在n秒内持续触发事件,仅执行一次事件处理函数。

var valid = true;
function throttle( fn ){
  if(!valid) return false;
    valid = false
    setTimeout(() => {
      fn()
      valid = true;
    }, 1000)
}
//此案例在1000毫秒内,如果持续触发多次事件,仅会执行一次。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。