防抖:一个事件被触发多次,只执行最后一次
<body>
<button class="btn">防抖</button>
<button class="btn1">防抖1</button>
<script>
const btn = document.getElementsByTagName('button')
let timer = null
btn[1].onclick = function(){
if(timer){
clearInterval(timer)
}
timer = setTimeout(()=>{
console.log('2022');
},1000)
}
</script>
</body>
创建两个按钮,其中btn[1]代表的是第二个按钮,其含义与数组下标相同
再创建一个点击事件,只要点击了对应按钮即触发函数。
使用此方法,则如果在1秒内点击两次按钮,那么只会触发第二次。
节流:一个事件被触发多次,只执行第一次
<button class="btn">防抖</button>
<script>
const btn = document.querySelector('.btn')
let timer = null
btn.onclick = function(){
timer = setTimeout(()=>{
console.log(timer);
},1000)
}
</script>
使用此方法,则如果在1秒内点击两次按钮,那么只会触发第一次。
两种方法中timer返回的都为其执行次数。