<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
防抖:<input type="submit" name="" id="input1">
节流:<input type="submit" name="" id="input2">
<script>
function submit1() {
console.log('防抖成功');
}
function submit2() {
console.log('节流成功');
}
var btn1 = document.getElementById('input1')
var btn2 = document.getElementById('input2')
btn1.addEventListener('click', shake(submit1, 2000), false)
btn2.addEventListener('click', throttle(submit2, 2000), false)
function shake(fn, delay) {
let timer = null
return function () {
clearInterval(timer)
timer = setTimeout(() => {
fn()
}, delay)
}
}
function throttle(fn, delay) {
let temp = false;
return function () {
if (temp) {
return
} else {
temp = true
setTimeout(() => {
fn.apply(this, arguments)
temp = false
}, delay)
}
}
}
</script>
</body>
</html>