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

資訊專欄INFORMATION COLUMN

防抖動(dòng)與節(jié)流

Yangyang / 457人閱讀

摘要:防抖動(dòng)節(jié)流節(jié)流使得一定時(shí)間內(nèi)只觸發(fā)一次函數(shù)。它和防抖動(dòng)最大的區(qū)別就是,節(jié)流函數(shù)不管事件觸發(fā)有多頻繁,都會(huì)保證在規(guī)定時(shí)間內(nèi)一定會(huì)執(zhí)行一次真正的事件處理函數(shù),而防抖動(dòng)只是在最后一次事件后才觸發(fā)一次函數(shù)。

防抖動(dòng)與節(jié)流

針對(duì)一些會(huì)頻繁觸發(fā)的事件如scroll、resize,如果正常綁定事件處理函數(shù)的話,有可能在很短的時(shí)間內(nèi)多次連續(xù)觸發(fā)事件,十分影響性能。所以我們對(duì)于這種事件我們要進(jìn)行防抖動(dòng)或者節(jié)流的處理來(lái)優(yōu)化性能。

防抖動(dòng)

防抖動(dòng):將幾次操作合并為一此操作進(jìn)行。原理是維護(hù)一個(gè)計(jì)時(shí)器,規(guī)定在delay時(shí)間后觸發(fā)函數(shù),但是在delay時(shí)間內(nèi)再次觸發(fā)的話,就會(huì)取消之前的計(jì)時(shí)器而重新設(shè)置。這樣一來(lái),只有最后一次操作能被觸發(fā)。

節(jié)流

節(jié)流:使得一定時(shí)間內(nèi)只觸發(fā)一次函數(shù)。
它和防抖動(dòng)最大的區(qū)別就是,節(jié)流函數(shù)不管事件觸發(fā)有多頻繁,都會(huì)保證在規(guī)定時(shí)間內(nèi)一定會(huì)執(zhí)行一次真正的事件處理函數(shù),而防抖動(dòng)只是在最后一次事件后才觸發(fā)一次函數(shù)。
原理是通過(guò)判斷是否到達(dá)一定時(shí)間來(lái)觸發(fā)函數(shù),若沒(méi)到規(guī)定時(shí)間則使用計(jì)時(shí)器延后,而下一次事件則會(huì)重新設(shè)定計(jì)時(shí)器。

時(shí)間戳實(shí)現(xiàn):

當(dāng)高頻事件觸發(fā)時(shí),第一次應(yīng)該會(huì)立即執(zhí)行(給事件綁定函數(shù)與真正觸發(fā)事件的間隔如果大于delay的話),而后再怎么頻繁觸發(fā)事件,也都是會(huì)每delay秒才執(zhí)行一次。而當(dāng)最后一次事件觸發(fā)完畢后,事件也不會(huì)再被執(zhí)行了。

var throttle = function(func,delay){
    var prev = Date.now();
    return function(){
        var context = this;
        var args = arguments;
        var now = Date.now();
        if(now-prev>=delay){
            func.apply(context,args);
            prev = Date.now();
        }
    }
}
定時(shí)器實(shí)現(xiàn):

當(dāng)觸發(fā)事件的時(shí)候,我們?cè)O(shè)置一個(gè)定時(shí)器,再觸發(fā)事件的時(shí)候,如果定時(shí)器存在,就不執(zhí)行;直到delay秒后,定時(shí)器執(zhí)行執(zhí)行函數(shù),清空定時(shí)器,這樣就可以設(shè)置下個(gè)定時(shí)器。

var throttle = fucntion(func,delay){
    var timer = null;

    return funtion(){
        var context = this;
        var args = arguments;
        if(!timer){
            timer = setTimeout(function(){
                func.apply(context,args);
                timer = null;
            },delay);
        }
    }
}

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

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

相關(guān)文章

  • 小白圖解抖動(dòng)節(jié)流-Javascript篇

    摘要:防抖動(dòng)與節(jié)流點(diǎn)擊查看源碼防抖動(dòng)默認(rèn)不立即觸發(fā)保存作用域保存參數(shù)初始化清空所有定時(shí)器如果是立即觸發(fā)為空時(shí)觸發(fā)操作時(shí)間后置空時(shí)間后觸發(fā)操作防抖動(dòng)立即觸發(fā)防抖動(dòng)節(jié)流默認(rèn)立即觸發(fā)保存作用域保存參數(shù)為空時(shí)立即觸發(fā)時(shí)間后觸發(fā)操作節(jié)流立即觸發(fā)節(jié)流總結(jié) 防抖動(dòng)與節(jié)流 點(diǎn)擊查看源碼 防抖動(dòng) var debounce = function (fn, delay, isImmediate) { v...

    DevTTL 評(píng)論0 收藏0
  • 節(jié)流抖動(dòng)

    摘要:起因面試被問(wèn)到了節(jié)流和防抖動(dòng)自己對(duì)這兩個(gè)的概念比較模糊都不知道回答了什么鬼從語(yǔ)文和英語(yǔ)學(xué)起首先先看字面意思節(jié)流的意思就是水龍頭關(guān)小點(diǎn)頻率不要那么高防抖動(dòng)這根彈簧你不要來(lái)回蹦了我就要你最后停下來(lái)的沒(méi)有發(fā)生形變的那一刻舉個(gè)例子節(jié)流在改變窗口大小 起因 面試被問(wèn)到了節(jié)流和防抖動(dòng), 自己對(duì)這兩個(gè)的概念比較模糊, 都不知道回答了什么鬼 從語(yǔ)文和英語(yǔ)學(xué)起 首先, 先看字面意思:節(jié)流(throttl...

    hellowoody 評(píng)論0 收藏0
  • 抖動(dòng)節(jié)流

    摘要:它和防抖動(dòng)最大的區(qū)別就是,節(jié)流函數(shù)不管事件觸發(fā)有多頻繁,都會(huì)保證在規(guī)定時(shí)間內(nèi)一定會(huì)執(zhí)行一次真正的事件處理函數(shù)。 防抖動(dòng) 其核心內(nèi)涵在于延遲處理,也就是將一系列的事件處理程序全部延遲,保障推送進(jìn)來(lái)的第一次事件處理 var debounce  = function(fn,delay,mustRunDelay){ var timer = null; var t_start; ...

    alexnevsky 評(píng)論0 收藏0
  • 抖動(dòng)處理和節(jié)流 小技巧

    摘要:簡(jiǎn)單的防抖動(dòng)處理,一秒內(nèi)點(diǎn)擊一次向服務(wù)器請(qǐng)求數(shù)據(jù)點(diǎn)擊按鈕向后臺(tái)請(qǐng)求數(shù)據(jù)優(yōu)化點(diǎn)另外一些防抖動(dòng)的小技巧,請(qǐng)參考封裝好的簡(jiǎn)單防抖動(dòng)函數(shù)防抖動(dòng)函數(shù)要執(zhí)行的函數(shù),間隔毫秒數(shù)調(diào)用現(xiàn)成的工具庫(kù)防抖動(dòng)節(jié)流 1. 簡(jiǎn)單的防抖動(dòng)處理,一秒內(nèi)點(diǎn)擊一次 var timer = null; $(.coupon).click(function(){ if (timer) { return; } ...

    lscho 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<