函數(shù)防抖是指在事件被觸發(fā) n 秒后再執(zhí)行回調(diào),如果在這 n 秒內(nèi)事件又被觸發(fā),則重新計時。這可以使用在一些點擊請求的事件上,避免因為用戶的多次點擊向后端發(fā)送多次請求。
函數(shù)節(jié)流是指規(guī)定一個單位時間,在這個單位時間內(nèi),只能有一次觸發(fā)事件的回調(diào)函數(shù)執(zhí)行,如果在同一個單位時間內(nèi)某事件被觸發(fā)多次,只有一次能生效。節(jié)流可以使用在 scroll 函數(shù)的事件監(jiān)聽上,通過事件節(jié)流來降低事件調(diào)用的頻率。
防抖函數(shù)的應(yīng)用場景:
按鈕提交場景:防?多次提交按鈕,只執(zhí)?最后提交的?次服務(wù)端驗證場景:表單驗證需要服務(wù)端配合,只執(zhí)??段連續(xù)的輸?事件的最后?次,還有搜索聯(lián)想詞功能類似?存環(huán)境請?lodash.debounce
節(jié)流函數(shù)的適?場景:
拖拽場景:固定時間內(nèi)只執(zhí)??次,防?超?頻次觸發(fā)位置變動縮放場景:監(jiān)控瀏覽器resize動畫場景:避免短時間內(nèi)多次觸發(fā)動畫引起性能問題