前端面试吧 关注:42贴子:72
  • 3回复贴,共1

#前端面试题# 面试官:说一下什么是节流防抖?

只看楼主收藏回复

节流防抖的问题,在前端面试中非常常见


IP属地:河南1楼2021-03-30 10:02回复
    (可以举个例子)
    例如我们在移动端要做一个返回顶部的功能,但是返回顶部的按钮要在距顶部一定距离时才会显示,这就需要实时监听滚动条与顶部的距离。但是在运行时,这个监听滚动条的事件函数执行的频率太高了,对性能造成很大的影响。


    IP属地:河南2楼2021-03-30 10:02
    回复
      2026-01-07 20:28:53
      广告
      不感兴趣
      开通SVIP免广告
      防抖就是在第一次触发事件时,不立即执行函数,而是给出一个期限值,比如200ms,如果在200ms内没有再次触发滚动事件,那么就执行函数;如果在200ms内再次触发滚动事件,那么当前的计时取消,重新开始计时;如果短时间内大量触发同一事件,只会执行一次函数。对于短时间内连续触发的事件(上面的滚动事件),防抖的含义就是让某个时间期限(如上面的1000毫秒)内,事件处理函数只执行一次。


      IP属地:河南3楼2021-03-30 10:03
      回复
        节流的意思是,如果在限定时间段内,不断触发滚动事件(比如某个用户闲着无聊,按住滚动不断的拖来拖去),只要不停止触发,理论上就永远不会输出当前距离顶部的距离。如果我们想要的方案是,即使用户不断拖动滚动条,也能在某个时间间隔之后给出反馈。我们可以设计一种类似控制阀门一样定期开放的函数,也就是让函数执行一次后,在某个时间段内暂时失效,过了这段时间后再重新激活(类似于技能冷却时间)。如果短时间内大量触发同一事件,那么在函数执行一次之后,该函数在指定的时间期限内不再工作,直至过了这段时间才重新生效。


        IP属地:河南4楼2021-03-30 10:03
        回复