• 函数节流和函数防抖


    前端经典面试题目:什么是函数节流,什么是函数防抖?

      函数节流:一个函数执行一次后,只有大于设定的执行周期后才会执行第二次

        栗子:有个需要频繁出发函数,处于优化性能角度,在规定时间内,只让函数触发的第一次生效,后面不生效。

      案例:页面中有个滚动条,当我滑动滚动条时,会出发函数打印一句话,控制在0.2s以内只打印一次。

        html,body{
          height: 400%;
        }
     //  fn:要被节流的函数,delay:规定的时间
       function throttle(fn,delay){
        //  记录上一次函数触发的时间
         var lasttime = 0
         return function(){
          //  记录当前函数触发的时间
           var nowTime = Date.now()
           if(nowTime - lasttime > delay){
            //  修正this指向问题
             fn.call(this);
            //  同步时间
             lasttime = nowTime
           }
         }
       }
       document.onscroll = throttle(function(){
         console.log('滚动条被触发了' + Date.now())
        },200)

      函数防抖:一个需要频繁触发的函数,在规定时间内,只让最后一次生效,前面的不生效

      案例:页面中有个按钮,点击按钮打印:按钮被点击了,如果在0.2s内点击了多次,也只打印一次(最后一次点击的生效)

      <button id="btn">按钮</button>
       function debounce(fn,delay){
        //  记录上一次的延时器
         var timer = null
         return function(){
          //  清除上一次延时器
           clearTimeout(timer)
          //  重新设置新的延时器
          timer = setTimeout(function(){
            fn.apply(this)
          },delay)
         }
       }
       document.getElementById('btn').onclick = debounce(function(){
        console.log('按钮被点击了')
       },200)
  • 相关阅读:
    DELLR720 独立显卡DVI转VGA问题
    淘宝开源项目之Tsar
    remmina rdp远程连接windows
    linux 下查看硬件信息(mac,IP地址,硬盘型号,序列号等)
    Ubuntu16.04下安装googlechrome flash 插件和安装网易云音乐
    Linux实现crontab每秒秒执行
    Supervisord
    es 加磁盘扩容
    通知神器——java调用钉钉群自定义机器人
    python 退出程序的方式
  • 原文地址:https://www.cnblogs.com/yaya-003/p/12800570.html
Copyright © 2020-2023  润新知