在前端開發中會遇到一些頻繁的事件觸發,例如input,keyup,keydown,scroll,resize,mousemove等,這非常影響效能,所以我們需要控制它們觸發的頻率,方法就是防抖與節流。
//debounce
function
debounce
(func, wait)
, wait);}
}
// 如果直接使用underscore.js
// _.throttle(func,2000,)
// 第一次觸發: leading:true;
// 最後一次觸發: training:true;
// 沒有都為false的情況
function
throttle
(func, wait)
}}
function
throttle
(func, wait)
, wait)}}
}
防抖:
節流:
JS節流 防抖的區別,以及應用場景
函式節流與函式防抖都是為了限制函式的執行次數,以優化函式觸發頻率過高導致的響應速度跟不上觸發頻率,出現延遲 假死或卡頓的現象。函式節流 當持續觸發事件時,每隔一段時間函式就觸發一次,不管在這段時間內,觸發了多少次事件,在這段之間內就只觸發一次。舉個例子,input框中輸入內容,觸發keyup事件,通...
防抖和節流 應用場景及實現
概念 假定時間間隔為200ms,如果觸發事件後的200ms內再次觸發事件,則重新等待200ms,否則將成功執行指定函式。應用場景 資料查詢 監控使用者輸入 實現 function search t settimeout 2000 var test1 document.getelementbyid t...
函式節流和防抖 以及使用場景
二 防抖 定時器版 推薦 小結節流和防抖是前端工作中使用頻率很高的技巧,合理使用可以提高前端效能,減輕伺服器壓力。我們通過輸入框來觀察時間觸發頻率以及觸發時獲取到的值。lang en charset utf 8 name viewport content width device width,ini...