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