码迷,mamicode.com
首页 > Web开发 > 详细

js 防抖与节流原理

时间:2020-01-20 11:12:44      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:this   利用   延迟   nts   ott   bounce   时间段   deb   rip   

防抖和节流是前端应用开发中常见的两个功能,其原理都是利用闭包,缓存延迟时间。常用于窗口的resize、scroll,输入框内容校验等操作。

(1)防抖,思路:在规定时间内未触发第二次,则执行,代码如下

function debounce(fn, delay) {

  let time = null ; //定时器

  delay = delay || 500

  //利用闭包,缓存delay

  return function() {

    let arg = arguments

    if(time) {

      clearTimerOut(time)

    }

        time = setTimerOut(()=>{

      fn.apply(this,arg)

    },delay)

  }

}

 

(2)节流,当持续触发事件时,保证一定时间段内只调用一次

  function throttle(fn,delay) {

    let pre = Date.now()

    deley = delay || 500;

    return function(){

      let nowT = Date.now()

      let arg = arguments

      if(nowT  - pre  > = delay ) {

        fn.apply(this ,arg)

        pre = Date.now()

      }

    }

    

  }

 

js 防抖与节流原理

标签:this   利用   延迟   nts   ott   bounce   时间段   deb   rip   

原文地址:https://www.cnblogs.com/liuhp/p/12217129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!