函式的防抖與節流處理

2022-07-13 11:42:15 字數 704 閱讀 5860

函式的防抖:

1 防抖: 觸發n秒後,執行,或在n秒內一直觸發,則重新計時,使用場景比如 input onchange事件

1 該方法為 延時執行的防抖

debounce = (func, delay) => , delay);

}}

2該方法為 立即執行的防抖

debounce = (func, delay) => , delay);

} if }

函式的節流:

_throttle = (func, delay) => 

}}

_throttle = () =>

//if(!th.id) th.id = settimeout(function(),delay)

//}

}

遇到的坑

在寫節流的時候,如果使用定時器方式的節流,並使用了react **如下

this._throttle(this.change,1000)}>

如果 change方法內部 setstate 方法,那麼要注意 每一次setstate都會重新 執行 this._throttle方法

所以throttle的id 我繫結的是react內部的this.id,不能直接用閉包的id去做,否則會失效。

有問題call我

防抖與節流方案 函式防抖和節流

在前端開發的過程中,我們經常會需要繫結一些持續觸發的事件,如 resize scroll mousemove 等等,但有些時候我們並不希望在事件持續觸發的過程中那麼頻繁地去執行函式。通常這種情況下我們怎麼去解決的呢?一般來講,防抖和節流是比較好的解決方案。讓我們先來看看在事件持續觸發的過程中頻繁執行...

函式防抖與節流

因為在寫前端頁面時需要監控滑鼠滾輪,這導致在很短時間內,會觸發很多次函式,造成頁面卡頓堵塞,正巧自己在看github時看到了這個,所以自己記錄一下。函式防抖就是讓某個函式在上一次執行後,滿足等待某個時間內不再觸發此函式後再執行,而在這個等待時間內再次觸發此函式,等待時間會重新計算。underscor...

函式防抖與節流

在前端開發的過程中,我們經常會需要繫結一些持續觸發的事件,如 resize scroll mousemove 等等,但在事件持續觸發期間頻繁的執行函式在很大程度上造成了不必要的浪費。通常這種情況下我們一般使用防抖和節流是這兩種解決方案。讓我們先來看看在事件持續觸發的過程中頻繁執行函式是怎樣的一種情況...