前端性能优化-节流

节流:如果短时间内大量触发同一事件,那么在函数执行一次之后,该函数在指定的时间期限内不再工作,直至过了这段时间才重新生效。将多次执行变成每隔一段时间执行

节流函数的适⽤场景:

  • 拖拽场景:固定时间内只执⾏⼀次,防⽌超⾼频次触发位置变动
  • 缩放场景:监控浏览器resize
  • 动画场景:避免短时间内多次触发动画引起性能问题 

防抖函数代码如下:

function throttle (fn, delay) {
      let timeout = null
      return function () {
        if (!timeout) {
          //只有当前定时器执行完后才进行下一次函数执行 
          timeout = setTimeout(() => {
            fn.apply(this, arguments)
            timeout = null 
          }, delay)
       }
     }
  }

 

posted @ 2022-09-05 16:56  林中的小菜鸟  阅读(105)  评论(0)    收藏  举报