節(jié)流和防抖

1.0 防抖:所謂防抖佳鳖,就是指觸發(fā)事件后在 n 秒內(nèi)函數(shù)只能執(zhí)行一次脓匿,如果在 n 秒內(nèi)又觸發(fā)了事件,則會(huì)重新計(jì)算函數(shù)執(zhí)行時(shí)間(應(yīng)用場景:請求后臺接口 如根據(jù)區(qū)域查詢豬肉價(jià)格)

01.屏幕滑動(dòng)事件中依次執(zhí)行 代碼如下:

//html 部分
 <div id="content"></div>
//css 部分
<style>
  *{
        margin:0;
        padding:0;
    }
   #content{
       width:100vw;
       height: 100vh;
       border:0.025rem solid red;
       background: gray;
       font-size: 50px;
       color:white;
       text-align: center;
   }
</style>
<script>
  //防抖
  function debounce(fn, delay) {
                let timmer=null;
                return function () {
                    let args = arguments;
                    clearTimeout(timmer);
                    timmer = setTimeout(() => {
                        fn.apply(this, args)
                    }, delay);
                }
            }
            let num=1;
            const content = document.getElementById('content');
     function count (){
               content.innerText =num++
            }
            content.onmousemove=debounce(count,1000)   
</script>

效果: 滑動(dòng)屏幕 1s中以后 頁面顯示num+1

2.節(jié)流:所謂節(jié)流考余,就是指連續(xù)觸發(fā)事件但是在 n 秒中只執(zhí)行一次函數(shù)杏死。節(jié)流會(huì)稀釋函數(shù)的執(zhí)行頻率。(應(yīng)用場景:上拉加載刷新 下拉加載更多) 代碼如下:
//html 部分
 <div id="content">這是一篇文檔</div>
//css 部分
<style>
  *{
        margin:0;
        padding:0;
    }
   #content{
       width:100vw;
       height: 100vh;
       border:0.025rem solid red;
       background: gray;
       font-size: 50px;
       color:white;
       text-align: center;
   }
</style>
<script>
  //防抖
  // throttle 
    const THRESHOLD = 50
    function addMore(){
        const offsetHeight = document.documentElement.offsetHeight;
        const screenHeight = window.screen.height;
        const scroolTop= window.scrollY;
        const gap = offsetHeight-screenHeight-scroolTop;
        if(gap > THRESHOLD){
            console.log('加載……')
            
        }else{
            console.log('加載完成')
        }
   }
   function throttle(method,delay){
        var timer = null;
        return function(){
            var context = this, args=arguments;
            clearTimeout(timer);
            timer=setTimeout(function(){
                method.apply(context,args);
            },delay);
        }
    }
    window.onscroll= throttle(addMore,1000)

       
</script>

效果展示: 滑動(dòng)屏幕完成 當(dāng)gap>threshold 顯示加載……反之顯示加載完成 不會(huì)在滑動(dòng)屏幕過程中顯示加載 相當(dāng)于不會(huì)多次請求接口加載下一頁數(shù)據(jù)
參考文章:http://www.reibang.com/p/c8b86b09daf0

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末煌寇,一起剝皮案震驚了整個(gè)濱河市焕蹄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌阀溶,老刑警劉巖腻脏,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異银锻,居然都是意外死亡永品,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門击纬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鼎姐,“玉大人,你說我怎么就攤上這事≈⒓” “怎么了喂走?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谋作。 經(jīng)常有香客問我芋肠,道長,這世上最難降的妖魔是什么遵蚜? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任帖池,我火速辦了婚禮,結(jié)果婚禮上吭净,老公的妹妹穿的比我還像新娘睡汹。我一直安慰自己,他們只是感情好寂殉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布囚巴。 她就那樣靜靜地躺著,像睡著了一般友扰。 火紅的嫁衣襯著肌膚如雪彤叉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天村怪,我揣著相機(jī)與錄音秽浇,去河邊找鬼。 笑死甚负,一個(gè)胖子當(dāng)著我的面吹牛柬焕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播梭域,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼斑举,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了碰辅?” 一聲冷哼從身側(cè)響起懂昂,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤介时,失蹤者是張志新(化名)和其女友劉穎没宾,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沸柔,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡循衰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了褐澎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片会钝。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出迁酸,到底是詐尸還是另有隱情先鱼,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布奸鬓,位于F島的核電站焙畔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏串远。R本人自食惡果不足惜宏多,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望澡罚。 院中可真熱鬧伸但,春花似錦、人聲如沸留搔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隔显。三九已至函喉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荣月,已是汗流浹背管呵。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留哺窄,地道東北人捐下。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像萌业,于是被迫代替她去往敵國和親坷襟。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一.什么是函數(shù)防抖&節(jié)流 函數(shù)防抖函數(shù)防抖(debounce):在事件被觸發(fā)n秒后再執(zhí)行回調(diào)生年,如果在這n秒內(nèi)又被觸...
    王蕾_fd49閱讀 431評論 0 1
  • 函數(shù)節(jié)流: 如果將水龍頭擰緊直到水是以水滴的形式流出婴程,那你會(huì)發(fā)現(xiàn)每隔一段時(shí)間,就會(huì)有一滴水流出抱婉。函數(shù)防抖:如果用手...
    小米綠豆粥閱讀 241評論 0 0
  • 防抖 觸發(fā)高頻事件后n秒內(nèi)函數(shù)只會(huì)執(zhí)行一次蒸绩,如果n秒內(nèi)高頻事件再次被觸發(fā)衙四,則重新計(jì)算時(shí)間 實(shí)現(xiàn)方式:每次觸發(fā)事件時(shí)...
    LenHong閱讀 38,119評論 5 36
  • 前言 瀏覽器中某些計(jì)算和處理要比其他的昂貴很多。例如DOM操作比DOM交互需要更多的時(shí)間和cpu時(shí)間患亿,為了提升性能...
    蛙哇閱讀 1,233評論 0 0
  • 準(zhǔn)備第一天(這次準(zhǔn)備加辟谷總計(jì)14天) 一周內(nèi)減食传蹈,七天辟谷 準(zhǔn)備第一天 早體重54.5,晚體重54(清明出去玩,...
    槑頭槑腦的小孩閱讀 369評論 0 1