Throttle

节流,一定事件内只执行第1次操作,超过事件后可再执行

  1. const throttle1 = new Throttle(3000);
  2. for(let i=0;i<10;i++){
  3. throttle1.attempt(()=>{
  4. //此处3秒内只执行第1次
  5. });
  6. }

throttle

快速创建Throttle对象(存在时会直接引用)
防止按钮300ms内重复点击示例

  1. //点击多次,第1次触发,300ms秒内不再触发
  2. myClick(e: Event): void{
  3. throttle(300, 'throttle_click').attempt(()=>{
  4. console.log("throttle execute");
  5. },event);
  6. }

Debounce

防抖,一定时间内只执行最后1次操作,每次调用会延迟执行

  1. const debounce1 = new Debounce(3000);
  2. for(let i=0;i<10;i++){
  3. debounce1.attempt(()=>{
  4. //此处3秒内只执行最后1次
  5. });
  6. }

debounce

快速创建debounce对象(存在时会直接引用)
滑动页面,延迟300ms最后一次触发发送某个请求(避免频繁发送)

  1. //点击多次,第1次触发,300ms秒内不再触发
  2. myClick(e: Event): void{
  3. debounce(300, 'debounce_click').attempt(()=>{
  4. console.log("debounce execute");
  5. },event);
  6. }