為啥要使用防抖和節(jié)流
在觸發(fā)mousemove、scroll等事件時,會不斷的調(diào)用綁定在事件上面的回調(diào)函數(shù),極大的限制了前端性能;因此我們要防止資源被過渡浪費和惡意點擊,我們需要對此類事件進行減少調(diào)用次數(shù),因此會用防抖和節(jié)流的方式來減少頻率。
防抖的定義:在固定時間內(nèi),事件只允許被發(fā)生一次
簡單的防抖函數(shù)
當input框輸入時,結果會實時查詢,也就是當用戶每輸入一個字符,函數(shù)就會被調(diào)用一次,如果當用戶手速過快時或惡意輸入時,會有n個請求,此時數(shù)據(jù)就會發(fā)生抖動。

若我們將在一定的事件內(nèi),把input框輸入事件合并成為一個,執(zhí)行的請求會根據(jù)設定的時間而發(fā)出一次請求,即將這段時間的所有操作只執(zhí)行一次。

節(jié)流的定義:把一定時間內(nèi)的多個事件合為一個執(zhí)行
簡單的節(jié)流函數(shù)
當鼠標在盒子內(nèi)移動時,會不停的執(zhí)行回調(diào)函數(shù),就會輸出發(fā)送請求,所以我們需要處理讓鼠標移動時數(shù)據(jù)不要立刻發(fā)送請求

同樣,我們需要一個函數(shù)在連續(xù)操作中按照一定時間間隔只會執(zhí)行一次回調(diào)函數(shù),在頻率較高的事件中來節(jié)省性能
