js節(jié)流與防抖

節(jié)流:防止頻繁執(zhí)行某函數(shù),兩次執(zhí)行需要間隔時(shí)間(比如滾動(dòng))
防抖:防止多次發(fā)生,重復(fù)執(zhí)行(比如按鈕重復(fù)提交數(shù)據(jù))

// 重點(diǎn)是使用閉包鎖住變量的值
// 防抖
function debounce(fn, wait) {
  var timer = null
  return function() {
    if(timer) clearTimeout(timer)
    setTimeout(fn, wait)
  }
}
// 節(jié)流
function throttle(fn, delay) {
  var prev = Date.now()
  return function() {
    var context = this,
      args = arguments,
      now = Date.now();
    if(now - prev >= delay) {
      fn.apply(context, args)
      prev = Date.now()
    }
  }
}
?著作權(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ù)節(jié)流 在一段時(shí)間內(nèi),只能觸發(fā)一次函數(shù),如在這段時(shí)間內(nèi)多次觸發(fā),也只能執(zhí)行一次。 舉個(gè)栗子??我們?cè)诖蛲跽邥r(shí),當(dāng)英...
    浪味仙兒啊閱讀 342評(píng)論 0 2
  • 現(xiàn)在大多數(shù)項(xiàng)目都在用React或者Vue,再配套一個(gè)UI庫(kù),快速搭建一個(gè)系統(tǒng),的確方便了日常開發(fā)工作。我們?cè)趽肀Э?..
    勇敢快樂的風(fēng)箏閱讀 338評(píng)論 0 0
  • 節(jié)流(時(shí)間戳):一個(gè)函數(shù)執(zhí)行一次后,只有大于設(shè)定的時(shí)間,才會(huì)執(zhí)行第二次。 防抖(定時(shí)器):頻繁的觸發(fā)函數(shù),在規(guī)定的...
    抽瘋的稻草繩閱讀 409評(píng)論 0 0
  • 事件的觸發(fā)權(quán)很多時(shí)候都屬于用戶,有些情況下會(huì)產(chǎn)生問題: 向后臺(tái)發(fā)送數(shù)據(jù),用戶頻繁觸發(fā),對(duì)服務(wù)器造成壓力 一些瀏覽器...
    oWSQo閱讀 445評(píng)論 0 6
  • debounce:防抖--------讓在用戶動(dòng)作停止后延遲x ms再執(zhí)行回調(diào) throttle:節(jié)流------...
    淺秋_6672閱讀 1,520評(píng)論 0 1

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