JS函數(shù)節(jié)流和函數(shù)防抖
函數(shù)節(jié)流和函數(shù)防抖都是優(yōu)化高頻率執(zhí)行JS代碼的方法
函數(shù)節(jié)流
函數(shù)節(jié)流:是指JS代碼在一定的時間內(nèi)只能執(zhí)行一次辐董,就像人多少秒眨一次眼睛一樣妖滔。
函數(shù)節(jié)流應(yīng)用的實(shí)際場景低散,多數(shù)在監(jiān)聽頁面元素滾動事件的時候會用到诊县。
var canRun = true
document.getElementByID('scroll').onscroll=function(){
if(!canRun)return
canRun = false
var timeA = setTimeout(()=>{
canRun = true
},1000)
}
//判斷函數(shù)是否空閑,如空閑才會執(zhí)行定時器代碼
函數(shù)防抖
函數(shù)防抖是指代碼在頻繁觸發(fā)時检号,只有在足夠空閑的時間下才能執(zhí)行腌歉,就像公交車在一定時間內(nèi),如果持續(xù)有乘客刷卡上車谨敛,那公交車必須等全部乘客上完車才能開車究履。
函數(shù)防抖的應(yīng)用場景,最常見的就是用戶注冊時候的手機(jī)號碼驗證和郵箱驗證了脸狸。只有等用戶輸入完畢后最仑,前端才需要檢查格式是否正確,如果不正確炊甲,再彈出提示語泥彤。
var timeB = false
var execute = function(){
clearTimeout(timeB) //清除上一個計時器
var timeB = setTimeout(()=>{
canRun = false
},1000)
}