Web前端必做笔记之一:防抖和节流(三)
<script>
window.onscroll = function(){
console.log('123');
}
</script>
我们可以看到一滚动,几秒就触发了100次事件,我们想一下,在滚动的过程,发生交互数据,就触发了100次,这是不能接受的。这就有了节流
<script>
let flag = true;
window.onscroll = function(){
if(flag){
setTimeout(()=>{
console.log("hello world");
flag = true;
},500)
}
flag = false;
}
</script>
<script>
window.onscroll = throttle(function(){
console.log("hello world");
},500)
function throttle(fn,delay){
let flag = true;
return function(){
if(flag){
setTimeout(()=>{
fn.call(this);
flag = true;
},delay)
}
flag = false;
}
}
</script>
总结:
1.防抖 :用户触发事件过于频繁,只要最后一次事件的操作
2.节流作用:控制高频事件执行次数
|