🥇 函数防抖(debounce):
- 概念: 延迟要执行的动作,若在延迟的这段时间内,再次触发了,则取消之前开启的动作,重新计时。
举例: 电脑无操作1分钟之内如果没有操作会进入休眠,当第40秒时鼠标被移动一下,重新计时1分钟。
实现: 定时器。
* 应用: 搜索时等用户完整输入内容后再发送查询请求。input.addEventListener("keyup", (function (e) {var t = null;return function () {if (t) {clearTimeout(t)}t = setTimeout(function () {if (input.value.length) {console.log('1');}}, 300);}})())
🥇 函数节流(throttle):
- 概念:设定一个特定的时间,让函数在特定的时间内只执行一次,不会频繁执行
举例:fps游戏,鼠标按住不松手,子弹也不会连成一条线
实现:定时器、标识
* 实现:定时器、标识let isCanLog = truedocument.body.onscroll = function () {if(isCanLog){console.log(1)isCanLog = falsesetTimeout(function () {isCanLog = true},1000)}}
