节流
节流:控制事件执行次数
事件高频触发,控制执行次数(平A)
案例:滚动就触发
<style>
body{
height:2000px
}
</style>
</head>
<body>
<script>
window.onscroll=function(){
console.log('hello');
}
</script>
如何控制打印次数?
思考步骤:
1.
<script>
let flag=true
window.onscroll=function(){
if(flag){
setTimeout(function(){
console.log('hello');
},1000)
}
flag=false
}
</script>
1秒后执行打印,只执行一次
<script>
let flag=true
window.onscroll=function(){
if(flag){
setTimeout(function(){
console.log('hello');
flag=true
},1000)
}
flag=false
}
</script>
平均1秒执行一次
2.利用闭包封装节流
<script>
window.onscroll= throttle(function(){
console.log('hello');
},1000)
function throttle(fn,delay){
let flag = true
return function() {
if (flag) {
setTimeout(function () {
fn.call(this)
flag=true
}, delay)
}
flag = false
}
}
</script>
本文来自博客园,作者:Kira的学习笔记,转载请注明原文链接:https://www.cnblogs.com/kira2022/p/16102571.html

浙公网安备 33010602011771号