js防抖和限流

js防抖和限流

2019-04-08 10:54:56 微信号 xiexiezhizhi 阅读数 533  收藏 更多

分类专栏: js

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

本文链接:https://blog.csdn.net/a_passing_traveller/article/details/89083676

防抖

函数在300毫秒内触发就停掉定时器,只有在300毫秒后触发才会执行回调。

function debounce(callback,delay=300){
    var t = null
    return function(){
      clearTimeout(t)
      t = setTimeout(callback,delay)
    }
  }
  window.onscroll = debounce(function(){
    console.log('调用了一次');
  })

限流

函数只有在前后两次的时间大于500毫秒触发才会执行回调。

function throttle(callback,duration){
    var lastTime = new Date().getTime()
    return function(){
      var now = new Date().getTime()
      if(now - lastTime > 500) {
        callback();
        lastTime = now;
      }
    }
  }
  window.onscroll = throttle(function(){
    console.log('调用了一次');
  })

你可能感兴趣的:(js防抖和限流)