前端效能優化 節流(throttle)

2021-09-26 13:58:30 字數 497 閱讀 3575

一、定義:

乙個函式執行一次後,在只有大於設定的執行週期後才執行第二次,假設有個需要頻繁觸發的函式,處於效能優化角度,在規定的時間內,只讓函式的第一次生效,後面的不生效,大於設定時間後,再生效。

二、使用場景:

上拉載入,滾動條,等等

三、**:

四、原理

根據上邊的**分析一下原理,其實就是設定了乙個開始時間starttime和事件觸發時的時間nowtime,starttime也是需要利用閉包的特性存在記憶體中,不被釋放,通過判斷nowtime-starttime是否大於我們設定的時間來決定函式的執行,這樣就可以達到乙個節流的效果。

注意:和防抖函式一樣,節流函式也有乙個this指向問題,我們需要通過call讓他來指向之前的作用域下的this。

防抖 debounce 和節流 throttle

當呼叫動作觸發一段時間後,才會執行該動作,若在這段時間間隔內又呼叫此動作則將重新計算時間間隔。function debounce method,timeout,context timeout function handleresize window.onresize debounce handler...

效能優化 函式節流

專案中遇到乙個需要實現文字拖動的效果,用mousedown mousemove mouseup模擬拖動效果。但是實現的效果並不是很理想,原因是mousemove是乙個高頻事件,觸發的頻率非常高,會造成瀏覽器的效能問題。高頻觸發事件,對執行函式進行節流可以節省瀏覽器資源,以免造成不必要的效能浪費。具體...

前端效能優化

1.減少http請求次數 css sprites 在國內很多人叫css精靈,是一種網頁應用處理方式。它允許你將乙個頁面涉及到的所有零星都包含到一張大圖中去,這樣一來,當訪問該頁面時,載入的就不會像以前那樣一幅一幅地慢慢顯示出來了。對於當前網路流行的速度而言,不高於200kb的單張的所需載入時間基本是...