一、应用场景
在进行窗口的resize、scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用debounce(防抖)
和throttle(节流)
的方式来减少调用频率,同时又不影响实际效果。
两种函数都用到了闭包。
二、函数防抖(debounce)
当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次
,如果设定的时间到来之前,又一次触发了事件,就重新开始延时
。
代码如下:
// 过N秒后函数执行一次 如果一直触发 函数一直不执行
let input = document.querySelector('input')
function debounce(callBack,time) {
let timer
return function