JS:防抖与节流函数的实现与应用

一、防抖

防抖:一连串操作只执行一次。通过设置一个延迟时间,如果这段时间没有再次执行操作则运行目标函数,否则重新计时。

下面是一个防抖函数代码:

TypeScript 复制代码
let a=1;
const add = () => {
  a++;
};
const debounce = (fun: Function, delay: number) => {
  let timer: any = null;
  return function () {
    clearTimeout(timer);
    timer = setTimeout(() => {
      fun();
    }, delay);
  };
};
const debounceAdd = debounce(add, 1000);

二、节流

节流:立即执行目标函数,接着设定时间间隔,计时结束后才可再次执行目标函数。

TypeScript 复制代码
let a = 0;
const add = () => {
  a++;
};
const throttle = (fun: Function, delay: number) => {
  let timer: any = null;
  return function () {
    if (!timer) {
      fun();
      timer = setTimeout(() => {
        fun();
        timer = null;
      }, delay);
    }
  };
};
const throttleAdd = throttle(add, 1000);
相关推荐
s9123601012 分钟前
【Rust】使用lldb 调试core dump
前端·javascript·rust
爱吃烤鸡翅的酸菜鱼3 分钟前
用【rust】实现命令行音乐播放器
开发语言·后端·rust
全栈陈序员3 分钟前
用Rust和Bevy打造2D平台游戏原型
开发语言·rust·游戏引擎·游戏程序
黛琳ghz3 分钟前
用 Rust 从零构建高性能文件加密工具
开发语言·后端·rust
悟世君子4 分钟前
Rust 开发环境搭建
开发语言·后端·rust
代码狂想家8 分钟前
Rust时序数据库实现:从压缩算法到并发优化的实战之旅
开发语言·rust·时序数据库
黛琳ghz10 分钟前
用 Rust 打造高性能 PNG 压缩服务
开发语言·后端·rust
IT闫15 分钟前
Rust的内存安全与实战落地的直观解析
开发语言·安全·rust
zhouyunjian22 分钟前
syncronized使用与深入研究
java·开发语言