勵志

勵志人生知識庫

lodash截流

Lodash 提供了節流(throttle)函式,用於限制函式的執行頻率,最佳化因頻繁觸發而導致的性能問題。節流函式的作用是在指定的等待時間內,最多隻執行一次函式,這樣可以減少不必要的計算和資源消耗。

Lodash 的節流函式接受以下參數:

func(Function):要節流的函式。

[wait=0](number):等待的毫秒數。

[options={}](Object):選項對象,包括:

options.leading=true(boolean):指定調用在節流開始前執行。

options.trailing=true(boolean):指定調用在節流結束後執行。

節流函式還提供以下方法:

cancel:取消延遲的函式調用。

flush:立即調用函式。

使用示例:

當用戶滾動頁面時,避免頻繁更新位置信息,可以使用節流函式來限制更新位置的頻率:_.throttle(updatePosition, 100)。

在用戶點擊按鈕後調用某個函式,但希望在5分鐘內最多執行一次,可以使用節流函式來實現這一需求:_.throttle(renewToken, 300000)。

節流與防抖的區別在於:

節流:在等待時間內,無論觸發多少次事件,函式只執行一次。這適用於需要定期執行某些操作的場景,如滾動條滑動請求、上拉觸底載入更多等。

防抖:在連續觸發事件後,等待一段時間(如n秒)內,如果事件未再次被觸發,則執行函式一次。這適用於需要回響最後一次操作的場景,如輸入搜尋、視窗resize事件、滑鼠移動等。