欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript防抖與節(jié)流詳解

 更新時(shí)間:2021年10月18日 15:59:10   作者:頁(yè)神建輯-思而后學(xué)  
這篇文章主要介紹了JS中的防抖與節(jié)流及作用詳解,本文通過文字說明加示例代碼的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

防抖debounce

定義:對(duì)于短時(shí)間內(nèi)連續(xù)觸發(fā)的事件,比如滾動(dòng)事件,防抖就是讓某個(gè)時(shí)間期限內(nèi),事件處理函數(shù)只執(zhí)行一次。

關(guān)于防抖,拿手指按壓彈簧舉例,用手指按壓彈簧,一直按住,彈簧將不會(huì)彈起直到松開手指。

舉例resize:

function debounce(fn, wait){
    var timer = null;
    return ()=>{
        if(timer !== null){
            clearTimeout(timer);
        }
        timer = setTimeout(fn, wait);
    }
}
function handle(){
    console.log(Math.random());
}
window.addEventListener("resize",debounce(handle, 1000));

上面是非立即執(zhí)行版

立即執(zhí)行版

function debounce(fn, wait){
	let timeid, flag = true;
	return () => {
		clearTimeout(timeid);
		if(flag){
			fn();
			flag = false;
		}else{
			timeid = setTimeout(()=>{
				flag = true;
			}, wait);
		}
	}
}

拖動(dòng)瀏覽器窗口,觸發(fā)resize,此時(shí)并不觸發(fā)handle函數(shù),定時(shí)器計(jì)時(shí),在計(jì)時(shí)時(shí)間內(nèi)再次觸發(fā)resize的話,則會(huì)從新計(jì)時(shí),這樣做的好處就是拖動(dòng)瀏覽器窗口觸發(fā)resize,并不會(huì)頻繁執(zhí)行handle函數(shù),只讓其在需要執(zhí)行的時(shí)候去運(yùn)行,有效的去除了冗余。

常見寫法:

const debounce = (func, delay = 200) => {
  let timeout = null
  return function () {
    clearTimeout(timeout)
    timeout = setTimeout(() => {
      func.apply(this, arguments)
    }, delay)
  }
}

節(jié)流throttle

定義:讓事件在一定時(shí)間內(nèi)只執(zhí)行一次。

本意是像水龍頭的水滴一樣,規(guī)定時(shí)間內(nèi)只執(zhí)行一次,減少頻繁反復(fù)執(zhí)行。

如搜索框input事件。

通過時(shí)間戳計(jì)算:

function throttle(fn,wait){
  let startTime = 0;
  return function(){
    let endTime = Date.now();
    if(endTime-startTime>wait){
      fn();
      startTime = endTime;
    }
  }
}

通過定時(shí)器:

function throttle(fn,wait){
  let timeid = null;
  return function(){
    if(!timeid){
       timeid = setTimeout(function(){
         fn();
         timeid = null;
       },wait)
    }
  }
}

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 總結(jié)在前端排序中遇到的問題

    總結(jié)在前端排序中遇到的問題

    這篇文章給大家羅列了在前段排序中會(huì)遇到的問題并寫了解決方案,非常詳細(xì),有需要的朋友可以參考。
    2016-07-07
  • safari,opera嵌入iframe頁(yè)面cookie讀取問題解決方法

    safari,opera嵌入iframe頁(yè)面cookie讀取問題解決方法

    最近做的合作網(wǎng)站嵌入到對(duì)方的iframe中去,在safari,opera和有些版本的搜狗瀏覽器(內(nèi)核版本原因)中不能讀到cookie。
    2010-06-06
  • ES6學(xué)習(xí)教程之對(duì)象的擴(kuò)展詳解

    ES6學(xué)習(xí)教程之對(duì)象的擴(kuò)展詳解

    這篇文章主要給大家介紹了ES6中對(duì)象擴(kuò)展的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • 微信小程序頁(yè)面間跳轉(zhuǎn)傳參方式總結(jié)

    微信小程序頁(yè)面間跳轉(zhuǎn)傳參方式總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于微信小程序頁(yè)面間跳轉(zhuǎn)傳參方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用小程序具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • js prototype和__proto__的關(guān)系是什么

    js prototype和__proto__的關(guān)系是什么

    這篇文章主要介紹了js prototype和__proto__的關(guān)系是什么,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 淺聊一下JavaScript中的LHS和RHS查詢

    淺聊一下JavaScript中的LHS和RHS查詢

    在日常編碼中,我們通常關(guān)注代碼的邏輯和功能,但很少深入思考編譯器在幕后的工作,今天我們將學(xué)習(xí)一下LHS(Left-Hand Side)和RHS(Right-Hand Side)查詢,它們?cè)贘avaScript編譯和執(zhí)行中的關(guān)鍵作用,以及在我們的日常開發(fā)中是如何發(fā)揮作用的,需要的朋友可以參考下
    2023-11-11
  • javascript創(chuàng)建cookie、讀取cookie

    javascript創(chuàng)建cookie、讀取cookie

    這篇文章主要介紹了javascript創(chuàng)建cookie、讀取cookie的操作方法,內(nèi)容簡(jiǎn)單易學(xué),感興趣的小伙伴們可以參考一下
    2016-03-03
  • 2020淘寶618理想生活列車自動(dòng)領(lǐng)喵幣js腳本的代碼

    2020淘寶618理想生活列車自動(dòng)領(lǐng)喵幣js腳本的代碼

    這篇文章主要介紹了2020淘寶618理想生活列車自動(dòng)領(lǐng)喵幣腳本,需要先安裝 auto.js腳本,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 微信小程序pinker組件使用實(shí)現(xiàn)自動(dòng)相減日期

    微信小程序pinker組件使用實(shí)現(xiàn)自動(dòng)相減日期

    這篇文章主要介紹了微信小程序pinker組件使用實(shí)現(xiàn)自動(dòng)相減日期,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • JS hashMap實(shí)例詳解

    JS hashMap實(shí)例詳解

    這篇文章主要介紹了JS hashMap實(shí)例詳解的相關(guān)資料,包括刪除鍵值、獲取鍵值的相關(guān)知識(shí),非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友一起看看吧
    2016-05-05

最新評(píng)論