简单了解防抖(debounce)与节流(throttle)

  • Post author:
  • Post category:其他


防抖(debounce)与节流(throttle)



防抖(debounce)

在平时的开发过程中,往往会绑定鼠标移动事件

onmousemove

,滚动滚动条事件

onscroll

等等。而这些事件会高频触发,如果我们绑定

onkeyup

事件发请求去服务端检查,在客户输入的过程中,事件的触发频率会很高,造成服务器压力大,页面卡顿的情况。对客户体验造成不好的影响,防抖和节流就可以解决这种问题

防抖简单来说:就是在规定的时间内只让你执行一次,如果在时间内又一次触发了此事件,则会重新计算时间,直到你不在触发此事件,并等待一定时间,才会执行事件中的函数。

// 延迟执行版防抖
function count() {
   
           console.log(1)
       }
 function debounce(fn, time) {
   
         let timer;
       return function () {
   
              clearTimeout(timer); // 如果在1秒钟内重复点击,会清除上一个定时器,下面的定时器将重新计算时间
           timer = setTimeout(() => {
   
                fn()               



版权声明:本文为web_ghr原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。