有個叫函式節流的東西

2021-09-19 23:54:45 字數 756 閱讀 9644

某些場景下,比如響應滑鼠移動或者視窗大小調整的事件,觸發頻率比較高。若處理函式稍微複雜,需要較多的運算執行時間,響應速度跟不上觸發頻率,往往會出現延遲,導致假死或者卡頓感。

為了解決這個問題,我們只能通過減少執行函式的次數來提高響應速度。

throttledebounce是解決請求和響應速度不匹配問題的兩個方案。二者的差異在於選擇不同的策略。

/**

** @param fn 實際要執行的函式

* @param delay 執行間隔,單位是毫秒(ms)

** @return 返回乙個「節流」函式

*/function throttle(fn, threshhold) , threshhold)

// 在時間區間的最開始和到達指定間隔的時候執行一次 fn

} else

}}

呼叫方法

$('body').on('mousemove', throttle(function (event) , 1000));
function debounce(fn, delay) , delay);

};}

呼叫方法

$('input.username').keypress(debounce(function (event) , 250));

談談js中的函式節流

從字面上就可以理解,函式節流就是用來節流函式從而一定程度上優化效能的。例如,dom 操作比起非dom 互動需要更多的記憶體和cpu 時間。連續嘗試進行過多的dom 相關操作可能會導致瀏覽器掛起,有時候甚至會崩潰。尤其在ie 中使用onresize 事件處理程式的時候容易發生,當調整瀏覽器大小的時候,...

函式防抖和函式節流的簡單介紹

主要使用場景是輸入框輸入後才傳送請求 未封裝寫法 var t null window.onscroll function 500 封裝寫法好處,既可以定義時間,也可以避免t變數的全域性汙染 function debounce callback,delay 300 window.onscroll de...

函式節流與函式防抖之間的區別

函式節流和函式防抖,兩者都是優化高頻率執行js 的一種手段。大家大概都知道舊款電視機的工作原理,就是一行行得掃瞄出色彩到螢幕上,然後組成一張張。由於肉眼只能分辨出一定頻率的變化,當高頻率的掃瞄,人類是感覺不出來的。反而形成一種視覺效果,就是一張圖。就像高速旋轉的風扇,你看不到扇葉,只看到了乙個圓一樣...