美文网首页
防抖和节流 及其实现

防抖和节流 及其实现

作者: 一个小蜗牛 | 来源:发表于2019-07-21 23:00 被阅读0次

    防抖函数

    你尽管触发事件,但是我一定在事件触发 n 秒后才执行,如果你在一个事件触发的 n 秒内又触发了这个事件,那我就以新的事件的时间为准,n 秒后才执行,总之,就是要等你触发完事件 n 秒内不再触发事件,我才执行

    实现

    function debounce(fn){
        let timeout = null;
        return function(){
              clearTimeOut(timeout)
              setTimeOut(() =>{
                    fn.apply(this,arguments)
              },500)
        }
    }
    

    节流函数

    防抖动和节流是不一样的.本质上,防抖动是将多次执行变成最后一次执行.节流是将多次执行变成每隔多久执行一次.减少函数执行频率.

    实现

    function throttle(fn){
        let canRun = true;
        return function(){
              if(!canRun) return;
              canRun = false;
              setTimeOut(() => {
                    fn.apply(this,argument)
                    canRun = true;
              },500)
        }
    }
    

    相关文章

      网友评论

          本文标题:防抖和节流 及其实现

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