节流

节流就是使一段时间内经常执行的代码变成一定间隔内执行一次。

function debounce() {
            let timer;
            return (() => {
                if (timer) return;
                timer = setTimeout(() => {
                    console.log("节流");
                    timer = null;
                }, 1000);
            })
        }
        dd = debounce();
        document.onmousemove = function () {
            dd();
        }

代码思想就是每隔一段时间执行代码,如果存在timer,直接返回;延迟函数中执行完毕以后,最后将timer设置为null

防抖

防抖就是使一段时间内事件触发执行的代码变成在最后一次触发以后才执行

function debounce() {
            let timer;
            return (() => {
                if (timer) clearTimeout(timer);
                timer = setTimeout(() => {
                    console.log("防抖");
                }, 1000);
            })
        }
        dd = debounce();
        document.onmousemove = function () {
            dd();
        }

代码思想就是如果存在timer,那么消除它,重新设置。即对应事件连续触发,但只执行最后一次触发时的逻辑。


用户bPcUQ3V
3 声望0 粉丝