亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

The debounce & throttle in Javascript(防抖與節(jié)流)

XboxYan / 2747人閱讀

摘要:您的支持是我最大的動力,我會保證提供高質(zhì)與清晰的文章與您共同成長。一些文章中的與上面所談到的設置類似。防抖防抖技術允許我們捆綁多個連續(xù)調(diào)用成為單一的一次調(diào)用。防抖的應用這個簡單的舉個

歡迎star和watch我的github issue blog,歡迎加入討論。
您的支持是我最大的動力,我會保證提供高質(zhì)與清晰的文章與您共同成長。

節(jié)流[throttle]與防抖[debounce]在前端領域經(jīng)常涉及,下面我們會嘗試解釋其中的原理與差異與實現(xiàn)以及一些應用場景

common sense

隨著應用與需求復雜度不斷上升,節(jié)流與防抖也出現(xiàn)了一些相同的設置其中一點就是可以選擇觸發(fā)的leadingtrailing(前置或后置)或both。

一些文章中的immediate option與上面所談到的設置leading: true類似。

debounce
debounce: Debounce technique allows us to "group" multiple sequential calls in a single one.
防抖: 防抖技術允許我們捆綁多個連續(xù)調(diào)用成為單一的一次調(diào)用。

可簡單的理解防抖是將一次調(diào)用發(fā)生時的前后時間(TIMING)斷內(nèi)不允許再次觸發(fā),若多次觸發(fā)則方法的真實調(diào)用根據(jù)設置可以在:

第一次觸發(fā)時(leading)--- 這將導致后續(xù)連續(xù)的觸發(fā)不再發(fā)生

最后一次觸后間隔至少一個TIMING內(nèi)沒有被再次觸發(fā)時調(diào)用(trailing)

Both

例如當設置leading: true且 TIME = 400ms

防抖的實現(xiàn):
/**
   * 返回一個函數(shù),只要它一直被觸發(fā)將不會被調(diào)用
   * 函數(shù)將在其不再被觸發(fā)的N毫秒后調(diào)用,如果immediate被傳入那么
   * 函數(shù)將在第一次觸發(fā)是立即調(diào)用
   * 
   */

// es6 syntax import & export
export function deBounce(func, delay, immediate) {
    let timeout;

    return function executedFunction() {
      const context = this;
      const args = arguments;

      var later = function() {
        timeout = null;
        if(!immediate) func.apply(context, args);
      }

      const callNow = immediate && !timeout;

      clearTimeout(timeout);

      timeout = setTimeout(later, delay);

      if (callNow) func.apply(context, args);
    }
  }

// 這是其中的一種實現(xiàn)關于leading與trailing可自行調(diào)整immediate。
防抖的應用

這個簡單的舉個

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/98991.html

相關文章

  • 高級函數(shù)技巧-函數(shù)抖與節(jié)流

    摘要:封裝方法也比較簡單,書中對此問題也進行了處理使用定時器,讓函數(shù)延遲秒后執(zhí)行,在此秒內(nèi),然后函數(shù)再次被調(diào)用,則刪除上次的定時器,取消上次調(diào)用的隊列任務,重新設置定時器。 在實際開發(fā)中,函數(shù)一定是最實用最頻繁的一部分,無論是以函數(shù)為核心的函數(shù)式編程,還是更多人選擇的面向?qū)ο笫降木幊?,都會有函?shù)的身影,所以對函數(shù)進行深入的研究是非常有必要的。 函數(shù)節(jié)流 比較直白的說,函數(shù)節(jié)流就是強制規(guī)定一...

    whinc 評論0 收藏0
  • 函數(shù)抖與節(jié)流

    摘要:函數(shù)防抖就是讓某個函數(shù)在上一次執(zhí)行后,滿足等待某個時間內(nèi)不再觸發(fā)此函數(shù)后再執(zhí)行,而在這個等待時間內(nèi)再次觸發(fā)此函數(shù),等待時間會重新計算。 underscore.js提供了很多很有用的函數(shù),今天想說說其中的兩個。這兩個函數(shù)都用于限制函數(shù)的執(zhí)行。 debounce 在解釋這個函數(shù)前,我們先從一個例子看下這個函數(shù)的使用場景。假設我們網(wǎng)站有個搜索框,用戶輸入文本我們會自動聯(lián)想匹配出一些結(jié)果供...

    Mr_zhang 評論0 收藏0
  • [譯]通過實例講解Debouncing和Throtting(抖與節(jié)流)

    摘要:譯通過實例講解和防抖與節(jié)流源碼中推薦的文章,為了學習英語,翻譯了一下原文鏈接作者本文來自一位倫敦前端工程師的技術投稿。首次或立即你可能發(fā)現(xiàn)防抖事件在等待觸發(fā)事件執(zhí)行,直到事件都結(jié)束后它才執(zhí)行。 [譯]通過實例講解Debouncing和Throtting(防抖與節(jié)流) lodash源碼中推薦的文章,為了學習(英語),翻譯了一下~ 原文鏈接 作者:DAVID CORBACHO 本文來自一位...

    Jenny_Tong 評論0 收藏0
  • JavaScript:函數(shù)抖與函數(shù)節(jié)流

    摘要:函數(shù)防抖簡單實現(xiàn)模擬請求獲取函數(shù)的作用域和變量清除定時器節(jié)流名詞解釋連續(xù)執(zhí)行函數(shù),每隔一定時間執(zhí)行函數(shù)。效果函數(shù)防抖是某一段時間內(nèi)只執(zhí)行一次函數(shù)節(jié)流是間隔時間執(zhí)行,不管事件觸發(fā)有多頻繁,都會保證在規(guī)定時間內(nèi)一定會執(zhí)行一次真正的事件處理函數(shù)。 防抖(debounce) 名詞解釋:在事件被觸發(fā)n秒后再執(zhí)行回調(diào)函數(shù),如果在這n秒內(nèi)又被觸發(fā),則重新計時。 使用場景:以百度輸入框例,比如你要查詢...

    elina 評論0 收藏0
  • 前端進擊的巨人(八):淺談函數(shù)抖與節(jié)流

    摘要:隆重請出主角防抖與節(jié)流。防抖與節(jié)流的異同相同都是防止某一時間段內(nèi),函數(shù)被頻繁調(diào)用執(zhí)行,通過時間頻率控制,減少回調(diào)函數(shù)執(zhí)行次數(shù),來實現(xiàn)相關性能優(yōu)化。參考文章分鐘理解的節(jié)流防抖及使用場景函數(shù)防抖和節(jié)流 showImg(https://segmentfault.com/img/bVburM8?w=800&h=600); 本篇課題,或許早已是爛大街的解讀文章。不過春招系列面試下來,不少伙伴們還...

    _Zhao 評論0 收藏0

發(fā)表評論

0條評論

XboxYan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<