防抖和節(jié)流

每當(dāng)監(jiān)聽input輸入或者頁(yè)面的onscroll,鼠標(biāo)的onmouseover這些事件的頻率非常高,但是如果我們?cè)谙蚝笈_(tái)發(fā)送數(shù)據(jù)時(shí)并不需要如此高的頻率,畢竟瀏覽器的性能是有限,所有我們要加以優(yōu)化

防抖:如果事件被頻繁觸發(fā),防抖能保證只有最有一次觸發(fā)生效!前面 N 多次的觸發(fā)都會(huì)被忽略!

節(jié)流:如果事件被頻繁觸發(fā),節(jié)流能夠減少事件觸發(fā)的頻率,因此,節(jié)流是有選擇性地執(zhí)行一部分事件!

防抖(debounce)

是當(dāng)事件被觸發(fā)后,延遲 n 秒后再執(zhí)行回調(diào),如果在這 n 秒內(nèi)事件又被觸發(fā),則重新計(jì)時(shí)。

好處:能夠保證用戶在頻繁觸發(fā)某些事件的時(shí)候,不會(huì)頻繁的執(zhí)行回調(diào),只會(huì)被執(zhí)行一次

使用場(chǎng)景:用戶在輸入框中連續(xù)輸入一串字符時(shí),可以通過防抖策略,只在輸入完后,才執(zhí)行查詢的請(qǐng)求,這樣可以有效減少請(qǐng)求次數(shù),節(jié)約請(qǐng)求資源


定義個(gè)盒子


自定義防抖函數(shù)

節(jié)流( throttle )

可以減少一段時(shí)間內(nèi)事件的觸發(fā)頻率 ,即當(dāng)前函數(shù)沒有執(zhí)行完,不會(huì)進(jìn)行后面的

使用場(chǎng)景:鼠標(biāo)連續(xù)不斷地觸發(fā)某事件,懶加載時(shí)要監(jiān)聽計(jì)算滾動(dòng)條的位置


自定義節(jié)流函數(shù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概念 所謂函數(shù)的防抖和函數(shù)的節(jié)流,是一種優(yōu)化程序性能的技術(shù)。主要應(yīng)用于事件處理程序中 什么情況下需要使用防抖和節(jié)流...
    小呆呆008閱讀 255評(píng)論 0 0
  • 無論是防抖還是節(jié)流都是為了避免回調(diào)函數(shù)中的處理隨著連續(xù)觸發(fā)事件每次都執(zhí)行 防抖和節(jié)流都是為了防止函數(shù)(事件)的連續(xù)...
    peakol閱讀 520評(píng)論 0 0
  • 在進(jìn)行窗口的resize、scroll,輸入框內(nèi)容校驗(yàn)等操作時(shí),如果事件處理函數(shù)調(diào)用的頻率無限制,會(huì)加重瀏覽器的負(fù)...
    iqing2012閱讀 892評(píng)論 0 1
  • 我演示的dome是基于vue框架的 1, 定義 防抖: 觸發(fā)高頻事件后n秒內(nèi)函數(shù)只會(huì)執(zhí)行一次,如果n秒內(nèi)高頻事件再...
    jasmine_6aa1閱讀 421評(píng)論 0 1
  • 在上周的開發(fā)中,又遇到點(diǎn)擊保存多次請(qǐng)求數(shù)據(jù)重復(fù)的問題,所以下來學(xué)習(xí)了一下js的防抖和節(jié)流。通過學(xué)習(xí)了解到,在進(jìn)行窗...
    any_5637閱讀 429評(píng)論 0 2

友情鏈接更多精彩內(nèi)容