函數(shù)節(jié)流與函數(shù)防抖

防抖:觸發(fā)高頻事件后n秒內(nèi)函數(shù)只會(huì)執(zhí)行一次,如果n秒內(nèi)高頻事件再次被觸發(fā),則重新計(jì)算時(shí)間
節(jié)流:高頻事件觸發(fā),但在n秒內(nèi)只會(huì)執(zhí)行一次,所以節(jié)流會(huì)稀釋函數(shù)的執(zhí)行頻率

  • html
<body>
  <button id="debounce">防抖</button>
  <button id="throttle">節(jié)流</button>
  <script src="./index.js"></script>
</body>
  • js
// 高頻率執(zhí)行函數(shù)
function highFrequency(text) {
  console.log(text);
}

// 防抖
document.querySelector("#debounce").onclick = debounce(highFrequency, "函數(shù)防抖");
// 對(duì)高頻率執(zhí)行函數(shù)進(jìn)行防抖處理
function debounce(fn, ...args) {
  let clock = null;
  return function() {
    if (clock) {
      clearTimeout(clock);
    }
    clock = setTimeout(function() {
      fn(...args);
    }, 1000);
  };
}

// 節(jié)流
document.querySelector("#throttle").onclick = throttle(highFrequency, "函數(shù)節(jié)流");
// 對(duì)高頻率執(zhí)行函數(shù)進(jìn)行節(jié)流處理
function throttle(fn, ...args) {
  let canRun = true;
  return function() {
    if (!canRun) {
      return;
    }
    canRun = false;
    setTimeout(function() {
      fn(...args);
      canRun = true;
    }, 1000);
  };
}
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 什么是函數(shù)節(jié)流與函數(shù)防抖? 舉個(gè)例子,我們知道目前的一種說(shuō)法是當(dāng) 1 秒內(nèi)連續(xù)播放 24 張以上的圖片時(shí),在人眼的...
    李輕舟閱讀 1,359評(píng)論 0 11
  • 概念 原文地址 函數(shù)防抖(debounce) 當(dāng)調(diào)用動(dòng)作過(guò)n毫秒后,才會(huì)執(zhí)行該動(dòng)作,若在這n毫秒內(nèi)又調(diào)用此動(dòng)作則...
    你在我記憶里閱讀 397評(píng)論 0 0
  • 我們?cè)谝粋€(gè)項(xiàng)目中按鈕連續(xù)多次點(diǎn)擊,會(huì)造成一些問(wèn)題,比如連點(diǎn)按鈕會(huì)造成多次push頁(yè)面,或者造成多次網(wǎng)絡(luò)請(qǐng)求。那么就...
    Da_Yao閱讀 187評(píng)論 0 0
  • 函數(shù)節(jié)流 節(jié)流就是, 不管怎么觸發(fā),都是按照指定的間隔來(lái)執(zhí)行。應(yīng)用場(chǎng)景:1、監(jiān)聽(tīng)頁(yè)面滾動(dòng),因?yàn)轫?yè)面滾動(dòng)是一個(gè)高頻觸...
    LeeYaMaster閱讀 406評(píng)論 0 0
  • 愛(ài)上一個(gè)不該愛(ài)的人,到底是誰(shuí)的錯(cuò),是你?還是……我不怪你,因?yàn)槲矣X(jué)得一切都是值得的,既然改變不了你,我就是改變我自己……
    薄荷味的女人閱讀 186評(píng)論 0 0

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