1、函数防抖,在一定时间段不断触发,只会执行最后一次的函数
<body>
<button id='btn'>点击</button>
<script>
//函数防抖,在一定时间段不断触发,只会执行最后一次的函数
function debounce(fn) {
let timer = null;
return function () {
clearTimeout(timer)
timer = setTimeout(() => {
fn.call(this,arguments[0]);
}, 1000);
}
}
let btn = document.querySelector('#btn');
btn.onclick = debounce(print)
function print(e) {
console.log(e)
}
</script>
</body>
2、函数节流,在一定时间段触发,就像去超市买东西,老板决定超市在星期一到星期天中打折一次,员工只能每个星期打折一次,不能多次打折
<body>
<button id='btn'>点击</button>
<script>
//函数节流,在一定时间段多次点击只触发一次
function throttle(fn) {
let flag = false;
return function () {
if (flag) {
return
}
flag = true
setTimeout(() => {
fn.call(this, arguments[0])
flag = false
}, 1000);
}
}
let btn = document.querySelector('#btn');
btn.addEventListener('click', throttle(print))
function print(e) {
console.log(e)
}
</script>
</body>
浙公网安备 33010602011771号