首頁 > web前端 > js教程 > 主體

節流閥與去抖動的基本實作方法介紹

不言
發布: 2019-04-13 11:53:00
轉載
2184 人瀏覽過

這篇文章帶給大家的內容是關於節流閥和去抖動的基本實現方法介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

節流閥throttle

觸發的事件以週期的形式去執行,而非實時。如滴水的水龍頭。

function throttle (fn, delay) {
  // 利用闭包变量时效性
  let timeout
  let arg
  return function () {
    arg = arguments
    if (!timeout) {
      timeout = setTimeout(() => {
        fn.apply(this, arg)
        timeout = null
      }, delay)
    }
  }
}
// demo
/*
var test = throttle(function (a) {console.log(a)}, 1000)
test(1) // 不执行
test(2) // 不执行
test(3)
=> 3
test = null // 不需要时释放内存
*/
登入後複製

去抖動debounce

事件最後一次觸發的N毫秒後觸發,如電梯門。

function debounce (fn, delay){
  let timeout
  return function(){
    const args = arguments
    clearTimeout(timeout)
    timeout = setTimeout(() => {
      fn.apply(this, args)
    }, delay)
  }
}
// 用法同throttle
登入後複製

以上是節流閥與去抖動的基本實作方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!