关于javascript:防抖

51次阅读

共计 407 个字符,预计需要花费 2 分钟才能阅读完成。

当继续触发事件时,肯定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的工夫到来之前,又一次触发了事件,就从新开始延时。举个栗子,继续触发 scroll 事件时,并不执行 handle 函数,当 1000 毫秒内没有触发 scroll 事件时,才会延时触发 scroll 事件。

/*
 *  description: 在 vue 中应用的防抖函数
 *  param fnName {String}  函数名
 *  param param {String}  参数
 *  param time {Number}    延迟时间
 *  return: 解决后的执行函数
 */
function VueDebounce(fnName ,param, time) {
  let timeout = null;
  return function() {if (timeout) {clearTimeout(timeout);
    }
    timeout = setTimeout(() => {this[fnName](param);
    }, time);
  };
}

正文完
 0