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