国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

scroll優(yōu)化之防抖與節(jié)流

littleGrow / 1038人閱讀

摘要:這個優(yōu)化方案是參照前端性能高性能滾動及頁面渲染優(yōu)化在這里簡單的把兩個方式寫出來,以便快速了解。。

這個優(yōu)化方案是參照 【前端性能】高性能滾動 scroll 及頁面渲染優(yōu)化

在這里簡單的把兩個方式寫出來,以便快速了解。。

第一種:防抖(也就是滾動結(jié)束才執(zhí)行)

演示:

閉包:

/*
    延時執(zhí)行
    @param fn function
    @param wait number
    @return function
*/
function debounce(fn, wait) {
    var timeout = null;
    return function() {
        if(timeout !== null) clearTimeout(timeout);
        timeout = setTimeout(fn, wait);
    }
}
// 處理函數(shù)
function handle() {
    console.log(Math.random()); 
}
// 滾動事件
window.addEventListener("scroll", debounce(handle, 500));

直接寫:

var timeout = null;
window.addEventListener("scroll", function() {
    if(timeout !== null) clearTimeout(timeout);
    timeout = setTimeout(function() {
        var scrollTop = this.scrollY;
        console.log(scrollTop);
    }.bind(this), 500);
});

第二個是節(jié)流(Throttling)滾動的過程中間隔執(zhí)行,例如滾動加載圖片效果,不可能等到滾動結(jié)束才執(zhí)行加載函數(shù)數(shù)吧,所以這里可以做一個間隔執(zhí)行。。

演示:

閉包:

/*
    節(jié)流函數(shù)
    @param fn function
    @param wait number
    @param maxTimeLong number
    @return function
*/
function throttling(fn, wait, maxTimelong) {
    var timeout = null,
        startTime = Date.parse(new Date);

    return function() {
        if(timeout !== null) clearTimeout(timeout);
        var curTime = Date.parse(new Date);
        if(curTime-startTime>=maxTimelong) {
            fn();
            startTime = curTime;
        } else {
            timeout = setTimeout(fn, wait);
        }
    }
}

function handle() {
    console.log(Math.random()); 
}

window.addEventListener("scroll", throttling(handle, 300, 1000));

直接寫:

var timeout = null,
    startTime = Date.parse(new Date); // 開始時間

function handle() {
    console.log(Math.random()); 
}

window.addEventListener("scroll", function() {
    if(timeout !== null) clearTimeout(timeout);
    var curTime = Date.parse(new Date); // 當(dāng)前時間
    if(curTime-startTime>=1000) { // 時間差>=1秒直接執(zhí)行
        handle();
        startTime = curTime;
    } else { // 否則延時執(zhí)行,像滾動了一下,差值<1秒的那種也要執(zhí)行
        timeout = setTimeout(handle, 300);
    }
});

諸如此類事件的還有resize事件都可以使用這兩種方式,當(dāng)然使用哪一種,還要看項目需求了。。謝謝關(guān)注~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/91206.html

相關(guān)文章

  • JS系列防抖節(jié)流

    摘要:概念函數(shù)節(jié)流和函數(shù)防抖,兩者都是優(yōu)化高頻率執(zhí)行代碼的一種手段。函數(shù)節(jié)流與函數(shù)防抖都是為了限制函數(shù)的執(zhí)行頻次,以優(yōu)化函數(shù)觸發(fā)頻率過高導(dǎo)致的響應(yīng)速度跟不上觸發(fā)頻率,出現(xiàn)延遲,假死或卡頓的現(xiàn)象。節(jié)流指定時間間隔內(nèi),只會執(zhí)行最后一次任務(wù)。 概念 函數(shù)節(jié)流和函數(shù)防抖,兩者都是優(yōu)化高頻率執(zhí)行js代碼的一種手段。 函數(shù)節(jié)流(throttle)與 函數(shù)防抖(debounce)都是為了限制函數(shù)的執(zhí)行頻次...

    everfight 評論0 收藏0
  • [譯]通過實例講解Debouncing和Throtting(防抖與節(jié)流)

    摘要:譯通過實例講解和防抖與節(jié)流源碼中推薦的文章,為了學(xué)習(xí)英語,翻譯了一下原文鏈接作者本文來自一位倫敦前端工程師的技術(shù)投稿。首次或立即你可能發(fā)現(xiàn)防抖事件在等待觸發(fā)事件執(zhí)行,直到事件都結(jié)束后它才執(zhí)行。 [譯]通過實例講解Debouncing和Throtting(防抖與節(jié)流) lodash源碼中推薦的文章,為了學(xué)習(xí)(英語),翻譯了一下~ 原文鏈接 作者:DAVID CORBACHO 本文來自一位...

    Jenny_Tong 評論0 收藏0
  • 前端進擊的巨人(八):淺談函數(shù)防抖與節(jié)流

    摘要:隆重請出主角防抖與節(jié)流。防抖與節(jié)流的異同相同都是防止某一時間段內(nèi),函數(shù)被頻繁調(diào)用執(zhí)行,通過時間頻率控制,減少回調(diào)函數(shù)執(zhí)行次數(shù),來實現(xiàn)相關(guān)性能優(yōu)化。參考文章分鐘理解的節(jié)流防抖及使用場景函數(shù)防抖和節(jié)流 showImg(https://segmentfault.com/img/bVburM8?w=800&h=600); 本篇課題,或許早已是爛大街的解讀文章。不過春招系列面試下來,不少伙伴們還...

    _Zhao 評論0 收藏0
  • 小菊花課堂之JS的防抖與節(jié)流

    摘要:文章來源詳談防抖和節(jié)流輕松理解函數(shù)節(jié)流和函數(shù)防抖函數(shù)防抖和節(jié)流好啦,今天的小菊花課堂之的防抖與節(jié)流的內(nèi)容就告一段落啦,感各位能耐心看到這里。 前言 陸游有一首《冬夜讀書示子聿》——古人學(xué)問無遺力,少壯工夫老始成。紙上得來終覺淺,絕知此事要躬行。,其中的意思想必大家都能明白,在學(xué)習(xí)或工作中,不斷的印證著這首詩的內(nèi)涵。所以,又有了此篇小菊花文章。 詳解 在前端開發(fā)中,我們經(jīng)常會碰到一些會持...

    leoperfect 評論0 收藏0
  • 小菊花課堂之JS的防抖與節(jié)流

    摘要:文章來源詳談防抖和節(jié)流輕松理解函數(shù)節(jié)流和函數(shù)防抖函數(shù)防抖和節(jié)流好啦,今天的小菊花課堂之的防抖與節(jié)流的內(nèi)容就告一段落啦,感各位能耐心看到這里。 前言 陸游有一首《冬夜讀書示子聿》——古人學(xué)問無遺力,少壯工夫老始成。紙上得來終覺淺,絕知此事要躬行。,其中的意思想必大家都能明白,在學(xué)習(xí)或工作中,不斷的印證著這首詩的內(nèi)涵。所以,又有了此篇小菊花文章。 詳解 在前端開發(fā)中,我們經(jīng)常會碰到一些會持...

    Yangder 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<