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

防抖和節(jié)流

函數(shù)防抖,debounce,基本思路就是把多個(gè)信號合并為一個(gè)信號,也就是在一定時(shí)間內(nèi),某方法不再被觸發(fā)了,就執(zhí)行該方法。

函數(shù)節(jié)流,throttle,基本思路就是讓用戶的方法在某個(gè)時(shí)間段內(nèi)只執(zhí)行一次。

兩者間的核心區(qū)別就在于持續(xù)觸發(fā)事件時(shí),前者合并事件并在最后時(shí)間去觸發(fā)事件,而后者則是隔間時(shí)間觸發(fā)一次~

debounce 防抖

function debounce(fn,delay){
    var timeout;
    return function(){
        clearTimeout(timeout);
        var context = this,
            arg = arguments,
            timeout = setTimeout(function(){
                fn.apply(context,args);
            },delay);
    }
}

throttle 節(jié)流

function throttle(fn,threshhold){
    var timeout;
    var start = new Date();
    var threshhold = threshhold || 160;
    return function(){
        var context = this,
            args = arguments,
            curr = new Date()-0;
        clearTimeout(timeout);// 總是干掉事件回調(diào)
        if(curr-start >= threshhold){
            fn.apply(context,args); //方法在某段時(shí)間內(nèi)只執(zhí)行一次
            start = curr;
        }
        else{
        //讓方法脫離事件后也能執(zhí)行一次
            timeout = setTimeout(function(){
                fn.apply(context,args);
            },threshhold)
        }
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 在日常開發(fā)中,我們經(jīng)常能夠碰到以下工作場景: 對提交按鈕進(jìn)行變態(tài)的點(diǎn)擊壓力測試輸入框內(nèi)容的實(shí)時(shí)校驗(yàn)(譬如驗(yàn)證用戶名...
    叫我小徐閱讀 1,136評論 0 5
  • 函數(shù)防抖(debounce) 假設(shè)我們網(wǎng)站有個(gè)搜索框,用戶輸入文本我們會(huì)自動(dòng)聯(lián)想匹配出一些結(jié)果供用戶選擇。我們可能...
    tobAlier閱讀 2,279評論 0 1
  • 函數(shù)防抖與節(jié)流,網(wǎng)上的內(nèi)容參差不齊,很容易弄混淆,本文不針對定義來說明什么是防抖,什么是節(jié)流,直接 show me...
    DCbryant閱讀 647評論 0 0
  • 在進(jìn)行窗口的resize、scroll,輸入框內(nèi)容校驗(yàn)等操作時(shí),如果事件處理函數(shù)調(diào)用的頻率無限制,會(huì)加重瀏覽器的負(fù)...
    iqing2012閱讀 904評論 0 1
  • 基于chai.js官方API文檔翻譯。僅列出BDD風(fēng)格的expect/should API。TDD風(fēng)格的Asser...
    Awey閱讀 54,095評論 11 59

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