您當前的位置:首頁 > 攝影

最通俗易懂版“函式防抖” 學不會來打我

作者:由 王二狗 發表于 攝影時間:2020-03-09

2020年3月9日

《每日一題系列 》

作者:王二狗

部落格:掘金、思否、知乎、簡書、CSDN

點贊再看,養成習慣,每日一題系列會一直更新下去,你們的支援是我持續分享的最大動力

什麼是函式防抖?

所謂函式防抖,就是說任務頻繁觸發的情況下,只有任務觸發的間隔超過指定間隔的時候,任務才會執行。

為了更方便你的理解,這裡舉一個快遞員送餐的例子。

如果快遞員在送餐的時候一次只送一單,這個時候顯然效率就會非常的低,那麼為了提高效率,我們制定了這樣一個規則。

他在接到一個訂單的時候會等上5分鐘,如果在這5分鐘之內有新的訂單,他就會再等上5分鐘。

那麼什麼時候不等了呢,開始去送餐呢?

就是當他等待的時間超過了5分鐘還是沒有新的訂單,他就不等了,就開始去送餐。

下面我們用實際的程式碼模擬一下這個過程:

function

deliveryFood

(){}

//設定定時器

var

timeId

=

null

//點下按鈕之後,快遞員接到第一單

button

onclick

=

function

(){

//如果有新的訂單,就清除之前的定時器,再等上5分鐘

if

timeId

){

window

clearTimeout

timeId

}

timeId

=

setTimeout

(()=>{

//如果5分鐘之內沒有新的訂單,就開始去送餐,並清楚定時器

deliveryFood

();

timeId

=

null

},

5000

}

告誡自己,即使再累也不要忘記學習,成功沒有捷徑可走,只有一步接著一步走下去。 共勉!

文章中如有不對的地方,歡迎小夥伴們多多指正。

謝謝大家~

標簽: 送餐  timeId  分鐘  訂單  定時器