亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript防抖與節(jié)流的實現(xiàn)與注意事項

 更新時間:2022年03月31日 10:23:30   作者:_雪菜肉絲面_  
防抖和節(jié)流嚴(yán)格算起來應(yīng)該屬于性能優(yōu)化的知識,但實際上遇到的頻率相當(dāng)高,處理不當(dāng)或者放任不管就容易引起瀏覽器卡死,下面這篇文章主要給大家介紹了關(guān)于JavaScript防抖與節(jié)流的實現(xiàn)與注意事項,需要的朋友可以參考下

概念

防抖:點(diǎn)擊N次提交按鈕,只有最后一次會發(fā)出請求。減少無效請求的次數(shù)。

節(jié)流:每點(diǎn)擊一次按鈕,都會失效一段時間。降低觸發(fā)的頻率。

實現(xiàn)

/*
防抖
時限內(nèi),只有最后一次調(diào)用會執(zhí)行
*/
function debounce(func, interval = 0) {
	let timer;
	return function () {
		if (timer) {
			clearTimeout(timer);
		}
		timer = setTimeout(() => {
			func()
		}, interval)
	}
}
/*
節(jié)流
執(zhí)行之后會失效一段時間
*/
function throttle(fn, interval=0, immediate=true) {
	let valid = true
	return function () {
		if (!valid) {
			return
		}
		valid = false
		if (immediate) {
			fn()
			setTimeout(() => {
				valid = true;
			}, interval)
		} else {
			setTimeout(() => {
				fn()
				valid = true;
			}, interval)
		}
	}
}

測試

function say() {
	console.log(1)
}
var a = debounce(say, 1000)
var b = throttle(say, 1000)
var c = throttle(say, 1000, false)

<button onclick="a()">測試防抖</button>
<button onclick="b()">測試節(jié)流一</button>
<button onclick="c()">測試節(jié)流二</button>

效果:

防抖。

節(jié)流,立即執(zhí)行。

節(jié)流,延時執(zhí)行。

注意事項

原理:閉包。每調(diào)用一次都會對應(yīng)一個閉包。

不能夠像下面這樣寫:

<button onclick="debounce(say, 1000)()">測試防抖</button>
<button onclick="throttle(say, 1000)()">測試節(jié)流一</button>
<button onclick="throttle(say, 1000, false)()">測試節(jié)流二</button>

不然:

總結(jié)

到此這篇關(guān)于JavaScript防抖與節(jié)流的實現(xiàn)與注意事項的文章就介紹到這了,更多相關(guān)JS防抖與節(jié)流內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Three.js獲取鼠標(biāo)點(diǎn)擊的三維坐標(biāo)示例代碼

    Three.js獲取鼠標(biāo)點(diǎn)擊的三維坐標(biāo)示例代碼

    本篇文章主要介紹了Three.js獲取鼠標(biāo)點(diǎn)擊的三維坐標(biāo)示例代碼。具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • JavaScript(JS) 壓縮 / 混淆 / 格式化 批處理工具

    JavaScript(JS) 壓縮 / 混淆 / 格式化 批處理工具

    本工具所有的功能實現(xiàn)都是由 ttp://jscompress.sinaapp.com/api 處理.(包括現(xiàn)在可以使用的這個在線壓縮)
    2010-12-12
  • JavaScript小技巧整理

    JavaScript小技巧整理

    這篇文章主要介紹了JavaScript小技巧,整理匯總了JavaScript常用的6個實用技巧,屬于JavaScript邊角技巧的總結(jié),需要的朋友可以參考下
    2015-12-12
  • JavaScript 數(shù)組中插入元素的實例方法

    JavaScript 數(shù)組中插入元素的實例方法

    這篇文章主要介紹了如何在 JavaScript 數(shù)組中插入元素,在本文中,我們學(xué)習(xí)了使用?splice()?方法將元素添加到數(shù)組的開始、末尾或任何位置的各種方法,需要的朋友可以參考下
    2023-09-09
  • JavaScript登錄驗證基礎(chǔ)教程

    JavaScript登錄驗證基礎(chǔ)教程

    這篇文章主要為大家詳細(xì)介紹了JavaScript登錄驗證的基礎(chǔ)教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 說明你的Javascript技術(shù)很爛的五個原因

    說明你的Javascript技術(shù)很爛的五個原因

    Javascript在互聯(lián)網(wǎng)上名聲很臭,但你又很難再找到一個像它這樣如此動態(tài)、如此被廣泛使用、如此根植于我們的生活中的另外一種語言。
    2011-04-04
  • JavaScript實現(xiàn)動態(tài)表格效果

    JavaScript實現(xiàn)動態(tài)表格效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)動態(tài)表格效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Java中int與integer的區(qū)別(基本數(shù)據(jù)類型與引用數(shù)據(jù)類型)

    Java中int與integer的區(qū)別(基本數(shù)據(jù)類型與引用數(shù)據(jù)類型)

    這篇文章主要介紹了int與integer的區(qū)別(基本數(shù)據(jù)類型與引用數(shù)據(jù)類型),簡單的說 int 是基本數(shù)據(jù)類型,integer 是引用數(shù)據(jù)類型,具體區(qū)別詳解大家參考下本文
    2017-02-02
  • JavaScript實現(xiàn)定時頁面跳轉(zhuǎn)功能示例

    JavaScript實現(xiàn)定時頁面跳轉(zhuǎn)功能示例

    這篇文章主要介紹了JavaScript實現(xiàn)定時頁面跳轉(zhuǎn)功能,涉及javascript結(jié)合時間函數(shù)定時觸發(fā)自定義函數(shù)功能操作技巧,需要的朋友可以參考下
    2017-02-02
  • Javascript中Promise的四種常用方法總結(jié)

    Javascript中Promise的四種常用方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于Javascript中Promise的四種常用方法,分別是處理異步回調(diào)、多個異步函數(shù)同步處理、異步依賴異步回調(diào)和封裝統(tǒng)一的入口辦法或者錯誤處理,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07

最新評論