1. 節(jié)流Throttle - 調用多次、只第一次調用有效
在一段時間內,不論觸發(fā)多少次調用,都以第一次為準。 輸入框補全提示,只需要每兩秒補全一次。
主要思路利用時間戳判斷,每次調用判斷和上一次調用的時間差異確定是否需要調用。 throttle實際是一個工廠函數(shù),可以將一個函數(shù)封裝為一個帶有節(jié)流功能的函數(shù)。
2. 防抖Debounce 最后一次為準
在一段時間內,不論觸發(fā)多少期回調,都已最后一次為準。 比如:以用戶拖拽改變窗口大小,觸發(fā) resize 事件為例,會觸發(fā)組件重新布局,這里面只有最后一次調用是有意義的。
實現(xiàn)的話可以使用定時器執(zhí)行函數(shù),新調用發(fā)生時如果舊調用沒有執(zhí)行就清除之前的定時器。