js優化之防抖節流
防抖函式
應用場景:
搜尋框/滾動條的監聽事件處理,防止每輸入一個字/滾動螢幕,都會觸發事件處理,造成效能浪費。
短時間內大量觸發同一事件,只會執行一次函式,實現原理為設定一個定時器,約定在xx毫秒後再觸發事件處理,每次觸發事件都會重新設定計時器,直到xx毫秒內無第二次操作
引數1為觸發事件函式,參2位延遲時間
function delayShake(fn, time) {
let timeout = null
return function() {
let context = this
let args = arguments
if (timeout) clearTimeout(timeout)
timeout = setTimeout(() => {
fn.apply(context, args)
}, time)
}
}
節流函式
防抖是延遲執行,而節流是間隔執行,函式節流即每隔一段時間就執行一次,實現原理為設定一個定時器,約定xx毫秒後執行事件,如果時間到了,那麼執行函式並重置定時器,和防抖的區別在於,防抖每次觸發事件都重置定時器,而節流在定時器到時間後再清空定時器
function throttle(fn, time) {
let timeout = null
return function() {
let context = this
let args = arguments
if (!timeout) {
timeout = setTimeout(() => {
timeout = null
fn.apply(context, args)
}, time)
}
}
}
相關文章
- 效能優化之防抖和節流優化
- js防抖和節流JS
- JavaScript之節流與防抖JavaScript
- js 函式防抖和節流JS函式
- js防抖 和節流函式JS函式
- 防抖和節流
- 前端效能優化-圖片懶載入(防抖、節流)前端優化
- javascript之函式防抖與節流JavaScript函式
- 節流防抖封裝封裝
- js函式防抖debounce和節流throttleJS函式
- 面試必問題:JS防抖與節流面試JS
- JS函式節流和函式防抖JS函式
- js函式中的節流和防抖JS函式
- JS簡單實現防抖和節流JS
- 女友都懂系列之防抖與節流分析
- 蝦扯蛋之函式防抖和節流函式
- JS系列1---節流,去抖(防抖)應用場景:intput請求優化,頁面監聽JS優化
- 函式防抖和節流函式
- 防抖和節流原理分析
- 函式節流和防抖函式
- 筆記-JavaScript[節流][防抖]筆記JavaScript
- 前端效能最佳化---防抖與節流--02前端
- 淺談js函式節流和函式防抖JS函式
- 影片直播原始碼,js實現節流和防抖原始碼JS
- 前端效能優化之防抖-debounce前端優化
- 函式的防抖和節流函式
- JavaScript中函式防抖、節流JavaScript函式
- 函式的防抖與節流函式
- 當Flutter遇到節流與防抖Flutter
- JavaScript 高階系列之節流 [throttle] 與防抖 [debounce]JavaScript
- 2019 面試準備 - JS 防抖與節流面試JS
- 關於js節流函式throttle和防抖動debounceJS函式
- JS的節流、函式防抖 原理及使用場景JS函式
- js防抖和節流的區別及實現方式JS
- 輕鬆理解JS函式節流和函式防抖JS函式
- [JS效能優化]函式去抖(debounce)與函式節流(throttle)JS優化函式
- 函式節流與函式防抖函式
- 淺談JavaScript的防抖與節流JavaScript