• 前端 防抖&节流,你学到未啊?


    防抖:当一定时间内 函数多次被触发的时候,只会执行最后一次

    节流:当一定时间内 执行函数时候,函数只会执行第一次,后面的不会被触发

    总结:节流防抖都是用来控制某些函数的调用频率

    防抖(debounce):

    function debounce(func, delay) {
        let timeout;
        return function() {
            clearTimeout(timeout);
            timeout = setTimeout(()=>{
                func.apply(this, arguments);
            }, delay);
        }
    }
    防抖的直观体现
    
     

    节流(throttle):

      1.时间戳版

      

    function throttle(func, delay) {
        let last = 0;
        return function () {
            let now = Date.now();
            if (now >= delay + last) {
                func.apply(this, arguments);
                last = now;
            } else {
                console.log("距离上次调用的时间差 不满足delay要求");
            }
        }
    }
    时间戳版节流

      

      2.定时器版

    // 定时器实现防抖函数
    function throttle(func, delay) {
      let timer = null
      return function(){
        if(!timer) {
          func.apply(this, arguments);
          timer = setTimeout(() => {
            // 执行完毕之后,将timer置null
            timer = null      
          }, delay);
        }else{
          console.log('上一个定时器尚未结束')
        }
      }
    }
    定时器节流

      

    
    参考作者(copy):大帅老猿
    链接:https://juejin.cn/post/6962949488646291486
    来源:掘金
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    ACE 的一些词汇
    odbc连接不上,初步猜想是myodbc安装有问题
    1分钟 当数据库管理员
    硬件申请
    编译删除
    ASP.NET之数据绑定
    发布、订阅、复制、同步SQL Server 2000 数据库
    SQL——添加约束的语句
    SQL——规则
    十大著名黑客—— 凯文米特尼克
  • 原文地址:https://www.cnblogs.com/soonK/p/15092966.html
Copyright © 2020-2023  润新知