<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      js 防抖和節流

       Throttle 的主要思想在于:在某段時間內,不管你觸發了多少次回調,都只認第一次,并在計時結束時給予響應。

      // fn是我們需要包裝的事件回調, interval是時間間隔的閾值
      function throttle(fn, interval) {
        // last為上一次觸發回調的時間
        let last = 0
      
        // 將throttle處理結果當作函數返回
        return function () {
          // 保留調用時的this上下文
          let context = this
          // 保留調用時傳入的參數
          let args = arguments
          // 記錄本次觸發回調的時間
          let now = +new Date()
      
          // 判斷上次觸發的時間和本次觸發的時間差是否小于時間間隔的閾值
          if (now - last >= interval) {
            // 如果時間間隔大于我們設定的時間間隔閾值,則執行回調
            last = now;
            fn.apply(context, args);
          }
        }
      }
      
      // 用throttle來包裝scroll的回調
      const better_scroll = throttle(() => console.log('觸發了滾動事件'), 1000)

      Debounce防抖的主要思想在于我會等你到底。在某段時間內,不管你觸發了多少次回調,我都只認最后一次

      function debounce(fn, delay) {
        // 定時器
        let timer = null
      
        // 將debounce處理結果當作函數返回
        return function () {
          // 保留調用時的this上下文
          let context = this
          // 保留調用時傳入的參數
          let args = arguments
      
          // 每次事件被觸發時,都去清除之前的舊定時器
          if (timer) {
            clearTimeout(timer)
          }
          // 設立新定時器
          timer = setTimeout(function () {
            fn.apply(context, args)
          }, delay)
        }
      }
      
      // 用debounce來包裝scroll的回調
      const better_scroll = debounce(() => console.log('觸發了滾動事件'), 1000)

      繪制一個有底線的Debounce,有時可以無底線

      // fn是我們需要包裝的事件回調, delay是時間間隔的閾值
      function debounce_optimize(fn, delay) {
        // last為上一次觸發回調的時間, timer是定時器
        let last = 0, timer = null
        // 將throttle處理結果當作函數返回
      
        return function () {
          // 保留調用時的this上下文
          let context = this
          // 保留調用時傳入的參數
          let args = arguments
          // 記錄本次觸發回調的時間
          let now = +new Date()
      
          // 判斷上次觸發的時間和本次觸發的時間差是否小于時間間隔的閾值
          if (now - last < delay) {
            // 如果時間間隔小于我們設定的時間間隔閾值,則為本次觸發操作設立一個新的定時器
            clearTimeout(timer)
            timer = setTimeout(function () {
              last = now
              fn.apply(context, args)
            }, delay)
          } else {
            // 如果時間間隔超出了我們設定的時間間隔閾值,那就不等了,無論如何要反饋給用戶一次響應
            last = now
            fn.apply(context, args)
          }
        }
      }
      
      // 用新的throttle包裝scroll的回調
      const better_scroll = throttle(() => console.log('觸發了滾動事件'), 1000)

       

      posted @ 2020-05-13 17:21  Bruce_Grace  閱讀(272)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久草国产视频| 国产一区二区三区美女| 色呦呦九九七七国产精品| 99热这里只有成人精品国产| 亚洲精品无码成人A片九色播放| 亚洲综合av男人的天堂| 久久精品国产99久久久古代| 成人视频在线观看| 国产精品夜夜春夜夜爽久久小说| 亚洲av无码乱码在线观看野外| 无码国产成人午夜电影在线观看| 少妇激情一区二区三区视频小说 | 久久夜色精品久久噜噜亚| 久久亚洲精品日本波多野结衣| 99国精品午夜福利视频不卡99| 国产自拍一区二区三区在线| 亚洲欧洲一区二区免费| 国产欧美久久一区二区| 亚洲国产在一区二区三区| 日韩欧美卡一卡二卡新区| 加勒比无码人妻东京热| 亚洲伊人精品久视频国产| 极品少妇xxxx| 日韩乱码卡一卡2卡三卡四 | 四虎永久在线高清免费看| 国产亚洲亚洲国产一二区| 狠狠躁夜夜躁人人爽天天5| 密云县| 国产精品综合av一区二区国产馆 | 日本乱码在线看亚洲乱码| 精品超清无码视频在线观看| 伊人激情av一区二区三区| 欧美日韩国产图片区一区| 伊人色综合久久天天| 亚洲精品日韩在线观看| 视频一区视频二区制服丝袜| 午夜精品一区二区三区成人| 精品国产一区二区三区香蕉| 国产乱色国产精品免费视频| 国产日韩精品欧美一区灰| 国产在线精品福利91香蕉|