美文网首页
debounce(防抖)

debounce(防抖)

作者: 砚婉儿 | 来源:发表于2020-10-12 09:51 被阅读0次

    触发高频时间后n秒内函数只会执行一次,如果n秒内高频时间再次触发,则重新计算时间。

    方法:

    function debounce(func, ms = 1000) {
      let timer;
      return function (...args) {
        if (timer) {
          clearTimeout(timer)
        }
        timer = setTimeout(() => {
          func.apply(this, args)
        }, ms)
      }
    }
    
    // 测试
    const task = () => { console.log('run task') }
    const debounceTask = debounce(task, 1000)
    window.addEventListener('scroll', debounceTask)
    

    相关文章

      网友评论

          本文标题:debounce(防抖)

          本文链接:https://www.haomeiwen.com/subject/rgxjpktx.html