節(jié)流
什么是節(jié)流?
高頻事件觸發(fā),但在 n 秒內(nèi)只會(huì)執(zhí)行一次,
所以節(jié)流會(huì)稀釋函數(shù)的執(zhí)行頻率。
代碼附上
<!-- 第一種方法 -->
<script>
function coloring() {
let r = Math.floor(Math.random()*255);
let g = Math.floor(Math.random()*255);
let b = Math.floor(Math.random()*255);
document.body.style.background = `rgb(${r},${g},$)`;
}
function throttle(func,delay) {
let timer;
return function() {
let that = this;
let args = arguments;
if (timer) {
return;
}
timer = setTimeout(()=>{
func.apply(that,args);
timer = null;
},delay)
}
}
window.addEventListener('resize',throttle(coloring,2000));
</script>
<!-- 第二種 -->
<!-- <script>
function coloring() {
let r = Math.floor(Math.random()*255);
let g = Math.floor(Math.random()*255);
let b = Math.floor(Math.random()*255);
document.body.style.background = `rgb(${r},${g},$)`;
}
function throttle(func,delay) {
let pro = 0;
return function() {
let now = new Date();
let that = this;
let args = arguments;
if (now - pro > delay) {
func.apply(that,args)
pro = now;
}
}
}
window.addEventListener('resize',throttle(coloring,2000));
</script> -->