计时器方法
1.setInterval与clearlnterval 循环输出
2. setTimeout与clearTimeout 只输出1次
防抖与节流
解决性能问题,开发中常会遇到。
防抖∶对于短时间内多次触发事件的情况,可以使用防抖停止事件持续触发。
节流︰防止短时间内多次触发事件的情况,但是间隔事件内,还是需要不断触发。
window.onscroll事件
防抖( debounce )
滚轮滚动的事件不会连续触发
let timer = null; window.onscroll = function){ if(timer !== null){ clearTimeout(timer); } timer = setTimeout(() =>{ console.log("hello world") timer = null; },2000) }
节流( thrqttle )
滚轮滚动的事件按时间间隔触发
let mark = true; window.onscroll = function(){ if(mark){ setTimeout(() =>{ console.log("hello world"); mark = true; },2000) } mark = false; }