應(yīng)該有很多小白和我一樣吧,對(duì)這個(gè)名字一點(diǎn)小小的陌生,在之前的開(kāi)發(fā)中,絲毫沒(méi)有覺(jué)得這個(gè)是一個(gè)很?chē)?yán)重的問(wèn)題,覺(jué)得還可以將就,有其他更重要的bug需要改,這個(gè)可以再緩緩。其實(shí)這個(gè)是個(gè)知識(shí)點(diǎn)吶。
函數(shù)節(jié)流:
//函數(shù)節(jié)流
var canRun = true;
document.getElementById('throttle').onscroll = function(){
if(!canRun){
//如果正在執(zhí)行就不執(zhí)行了
return
}
canRun = false;
setTimeout(function(){
console.log('函數(shù)節(jié)流');
canRun = true;
},300)
}
目的:這樣這個(gè)函數(shù)就在這300毫秒內(nèi)只能調(diào)用一次咯。
函數(shù)防抖:
//函數(shù)防抖
var timer = false;
Document.getElementByid('debounce').onscroll = function(){
clearTimeout(timer);
timer = setTimeout(function(){
console.log('函數(shù)防抖');
},300)
}
目的:每次點(diǎn)都重新計(jì)數(shù),這樣會(huì)頻繁觸發(fā)函數(shù)但是不會(huì)執(zhí)行內(nèi)容,每次觸發(fā)重新計(jì)算時(shí)間。