节流--防抖

防抖 需求场景: 当用户频繁点击一个请求按钮时,如果不做任何处理,那么点了多少次,这个按钮绑定的请求事件就会执行多少次。
解决方案一:在请求前 设置按钮diable状态为true, 请求结束后设置disable状态false。
解决方案二:写一个防抖函数,比如点击这个按钮1秒后再去提交请求。


节流 需求场景: 举例:拖动一个div,在div被拖动过程中执行一个函数,为了简化代码,我这里以鼠标在移动过程中触发某个动作(事件/方法/函数...)作为例子。
试比较如下两个例子
实现节流前:
window.addEventListener("mousemove",mousemoveFn); function mousemoveFn() { console.log("鼠标正在移动中..."); // 触发内容 }

【节流--防抖】实现节流后:
window.addEventListener("mousemove",mousemoveFn); let flag = true; function mousemoveFn() { if(flag){ flag = false setTimeout(() => { console.log("鼠标正在移动中..."); flag = true }, 500); } }

    推荐阅读