Js 防抖與節(jié)流的區(qū)別

1.防抖

觸發(fā)高頻事件后n秒內(nèi)函數(shù)只會(huì)執(zhí)行一次,如果n秒內(nèi)高頻事件再次被觸發(fā),則重新計(jì)算時(shí)間

常見應(yīng)用場景:用戶注冊(cè)時(shí)的手機(jī)號(hào)碼驗(yàn)證和郵箱驗(yàn)證

var timer = false;
document.getElementById("debounce").onscroll = function(){
clearTimeout(timer); // 清除未執(zhí)行的代碼,重置回初始化狀態(tài)
timer = setTimeout(function(){
? console.log("函數(shù)防抖");
}, 300);
};

2.節(jié)流

高頻事件觸發(fā),但在n秒內(nèi)只會(huì)執(zhí)行一次,節(jié)流會(huì)稀釋函數(shù)的執(zhí)行頻率

常用場景:監(jiān)聽頁面元素滾動(dòng)事件,因?yàn)轫撁嬖貪L動(dòng)是個(gè)高頻觸發(fā)事件

var canRun = true;
document.getElementById("throttle").onscroll = function(){
if(!canRun){
? // 判斷是否已空閑,如果在執(zhí)行中,則直接return
? return;
}
canRun = false;
setTimeout(function(){
? console.log("函數(shù)節(jié)流");
? canRun = true;
}, 300);
};
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 概念 函數(shù)防抖(debounce) 當(dāng)調(diào)用動(dòng)作過n毫秒后,才會(huì)執(zhí)行該動(dòng)作,若在這n毫秒內(nèi)又調(diào)用此動(dòng)作則將重新計(jì)算執(zhí)...
    yuanjiex閱讀 679評(píng)論 0 1
  • 防抖 debounce 定義 所謂防抖就是觸發(fā)事件之后,將多次觸發(fā)合并成一次執(zhí)行,即在規(guī)定時(shí)間內(nèi)回調(diào)函數(shù)只執(zhí)行一次...
    涼城十月閱讀 237評(píng)論 0 0
  • 一、概念 函數(shù)節(jié)流和函數(shù)防抖,兩者都是優(yōu)化高頻率執(zhí)行js代碼的一種手段。 舊款電視機(jī)的工作原理,就是一行行得掃描出...
    木子川頁心閱讀 597評(píng)論 1 1
  • 一.什么是函數(shù)防抖&節(jié)流 函數(shù)防抖函數(shù)防抖(debounce):在事件被觸發(fā)n秒后再執(zhí)行回調(diào),如果在這n秒內(nèi)又被觸...
    王蕾_fd49閱讀 551評(píng)論 0 1
  • 防抖 觸發(fā)高頻事件后n秒內(nèi)函數(shù)只會(huì)執(zhí)行一次,如果n秒內(nèi)高頻事件再次被觸發(fā),則重新計(jì)算時(shí)間 思路: 每次觸發(fā)事件時(shí)都...
    京巴_2cc6閱讀 791評(píng)論 0 0

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