关于javascript:防抖

当继续触发事件时,肯定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的工夫到来之前,又一次触发了事件,就从新开始延时。举个栗子,继续触发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);
  };
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理