最通俗易懂版“函式防抖” 學不會來打我
作者:由 王二狗 發表于 攝影時間: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
)
}
告誡自己,即使再累也不要忘記學習,成功沒有捷徑可走,只有一步接著一步走下去。 共勉!
文章中如有不對的地方,歡迎小夥伴們多多指正。
謝謝大家~