所谓防抖,就是指触发事件后 n 秒后才执行函数,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
(大白话:游戏回血时,又被敌人咔咔咔,然后又归0,重新回血,再没被敌人咔咔咔回血成功,才叫复活一次。)
以下是简单逻辑过程:
<body>
<input type="text" />
<script>
// 防抖
let timerId
document.querySelector('input').addEventListener('input', function () {
clearTimeout(timerId)
timerId = setTimeout(() => {
console.log(this.value)
}, 1000)
// console.log(this.value)
})
</script>
</body>
输入框每打一个字,后台打印一个value万一涉及到接口请求浪费性能,故用防抖。