JavaScript - 防抖与节流 基础代码

2023-05-16

防抖

无论触发了多少次函数, 只执行最后一次函数(多次触发合并为一次)

<body>

 <button id="btn">点我</button>
 <script>
 	// 获取 Dom 
    const btn = document.getElementById("btn")
    // 添加事件 DOM2级事件
    btn.addEventListener("click", debounce(consoleClick, 500), false)
	
    function consoleClick() {
        console.log("点我" + Math.random() * 9)
    }

    function debounce(fn, delay) {
        let timer = null

        return function () {
            let that = this,
                args = arguments;
   
			// 判断 timer 是否已经存在
            if (timer) {
                clearTimeout(timer)
                timer = null
            }

            timer = setTimeout(function () {
                fn.apply(that, args)
            }, delay)
        }
    }
 </script>
</body>

节流:

不管你触发了多少次函数, 规定的时间内只执行一次(一定时间内的多次触发只取最后一次执行)


<!DOCTYPE HTML>
<html>

<body>
    <button id="btn">点我</button>
</body>

<script type="text/javascript">
    // 获取 Dom 
    const btn = document.getElementById("btn")
    // 添加事件 DOM2级事件
    btn.addEventListener("click", throttle(consoleClick, 800), false)

    function consoleClick() {
        console.log("点我" + Math.random() * 9)
    }

    function throttle(fn, wait) { // wait 时间
        let timer;
        return function () {
            const context = this;
            const arg = arguments;

            if (!timer) {
                timer = setTimeout(function () {
                    timer = null;
                    fn.apply(context, arg);
                }, wait)
            }
        }
    }
</script>

</html>


在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript - 防抖与节流 基础代码 的相关文章

  • ubuntu桌面翻转怎么设置成正常?

    有一次在ubuntu设置中 xff0c 脑残在桌面设置里把桌面翻转了 xff0c 虽然有撤回按钮 xff0c 但是桌面翻转了 xff0c 鼠标不受控制 这里介绍一种办法 xff1a Ctrl 43 Alt 43 T 打开终端 xrandr
  • ubuntu20运行VINS-Fusion报错

    ubuntu20运行VINS Fusion报错 Ubuntu20运行VINS Fusion xff0c catkin make报错可以csdn解决 xff1b 但是启动vins node节点的时候 xff0c 就会显示 段错误 xff0c
  • 谷粒学院自学笔记

    谷粒学院自学笔记 day01上午一 MyBatis Plus的入门配置 下午 day02day03day04 Day05Day06Day07Day08Day09Day10Day11Day12Day13Day14Day15Day16Day17
  • CPU 任务调度算法

    摘录自 TSN网络中时间同步精度提升与可靠性研究 董林峰 可参考文章 xff1a https blog csdn net qq 38216239 article details 80374539 多任务操作系统按调度策略的差别可以细分为抢占
  • 安装Docker详细步骤总结

    一 安装Docker 1 下载关于Docker的依赖环境 在Xterm中输入以下代码安装依赖环境 回车 yum y install yum utils device mapper persistent datalvm2 使用yum工具下载
  • MobaXterm连接报错Network error: Connection timed out

    今天打开MobaXterm远程连接我VMware虚拟机的时候出现以下界面 xff0c 问题详情如下 xff1a Network error Connection timed out Session stopped Press lt retu
  • 拉丁超立方抽样

    拉丁超立方 xff08 LHS xff09 适用于样本数量少的情况 xff0c 主要思想是概率分布的分层 xff0c 一层一个样本 xff08 每层的样本是随机的 当且仅当每一行和每一列只有一个样本时 xff0c 才能称为拉丁方格 LHS可
  • 银河麒麟用x11vnc实现远程桌面

    1 安装x11vnc 插入x11vnc的命令 sudo apt span class token operator span get update sudo apt span class token operator span get in
  • Vins-mono细节描述--相机imu外参标定

    vins mono能够在初始化的时候 自动标定相机和imu的外参 这个强大的功能其实并没有想象中那么复杂 一起来看看 1 在vins mono的配置文件中 就可以找到参数 来选择 是否需要估计参数 Extrinsic parameter b
  • lvi-sam的深度匹配策略

    在lvi sam中 xff0c 作者通过视觉处理的时候 xff0c 利用lidar的深度信息 xff0c 得到了更稳定的估计 那在代码里是怎么实现的呢 xff1f 一起来看看看呗 1 在lvi sam的feature tracker nod
  • 路由器硬件组成

    和其他计算机一样 xff0c 运行着baiIOS的路由器也包含了一个 中央处理器 CPU 不同系列和型号的路由器 xff0c CPU也不尽相同 路由器的处理器负责执行处理数据包所需的工作 xff0c 比如维护路由和桥接所需的各种表格以及作出
  • 系统调用与库函数的关系

    系统调用与库函数 1 系统调用 操作系统负责管理和分配所有的计算机资源 为了更好地服务于应用程序 xff0c 操作系统提供了一组特殊接口 系统调用 通过这组接口用户程序可以使用操作系统内核提供的各种功能 例如分配内存 创建进程 实现进程之间
  • FPGA中关于“后仿真正常,但上板测试出错”的问题

    FPGA中关于 后仿真正常 xff0c 但上板测试出错 的问题 求助帖 做的是矩阵键盘的扫描程序 xff0c 后仿真的扫描波形正常 xff1a 但上板子测试的时候用chipscope看扫描的波形却是这个样子的 xff1a 有带佬分析一下是什
  • 一张图搞懂数据结构体系——数据结构脑图

    基本概念 xff1a 数据 xff1a 数据是信息的载体 xff0c 是计算机程序加工的原料 数据元素 xff1a 是数据的基本单位 xff0c 也称元素 结点 数据结构 xff1a 是数据之间的相互关系 xff0c 是数据的组织形式 xf
  • 【入门篇】ESP8266直连智能音箱(天猫精灵)控制智能灯

    本系列博客学习由非官方人员 刘一周 潜心所力所写 xff0c 仅仅做个人技术交流分享 xff0c 不做任何商业用途 如有不对之处 xff0c 请留言 xff0c 本人及时更改 本系列博客内容是通过乐鑫ESP8266直连天猫精灵 xff0c
  • 如何进行CAN总线高效测试?

    CAN总线自BOSCH公司发明以来 xff0c 在汽车通信网络中的应用得到了广泛认可 随着汽车电子技术的发展 xff0c 车上的电子模块越来越多 xff0c 汽车内部的CAN总线节点也随之增多 一般汽车内部CAN节点少则10个 xff0c
  • keil5 中文注释

    keil5 中文注释 点击 Edit gt configuration 如下图 xff1a 在Editor界面中选择Encoding xff0c 如下图 xff0c 这三个均可显示中文注释 xff0c 推荐第一个 xff0c 保持Keil代
  • 【CMake学习】list使用

    添加链接描述 一 介绍 cmake的list命令即对列表的一系列操作 xff0c cmake中的列表变量是用分号 分隔的一组字符串 xff0c 创建列表可以使用set命令 xff08 参考set命令 xff09 xff0c 例如 xff1a
  • 【ros+movros安装与飞控连接测试,pixhawk2.4.8】

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 ros安装二 mavros总结 前言 记一下装ros和movros的过程顺便把一些重要的链接保存一些 提示 xff1a
  • 使用docker发布.net应用

    步骤 xff1a 创建 NET应用样例 创建包含生成 NET镜像所需引导的Dockerfile 构建一个镜像并基于此创建一个容器 设置容器数据卷和网络设置 使用Docker Compose编排容器 使用容器构建开发坏境 创建镜像 先决条件

随机推荐

  • python计算机视觉--全景图像拼接

    目录 一 RANSAC算法 1 1 RANSAC算法简介 1 2 算法基本思想和流程 1 3 RANSAC求解单应性矩阵 二 图像映射与全景拼接 2 1 简介 2 2 计算第二张图像与第一张图像之间的变换关系 2 3 将第二张图像叠加到第一
  • px4自带教程offboard下的gazebo多无人机编队仿真

    px4自带教程offboard下的gazebo多无人机编队仿真 主要教程参考这篇文章 xff0c offboard代码也源自下面链接 xff0c 增加了其他文件的配置细节 xff0c 链接如下 xff1a https blog csdn n
  • rotors_simulator与sitl_gazebo冲突导致报错“gzserver....”

    rotors simulator与sitl gazebo冲突导致报错 gzserver 创建时间2021 04 14 报错图片详见2021 04 14屏幕截图 总是出现gzserver symbol lookup error home zy
  • 安装ROS、gazebo、PX4基础细节及offboard控制

    新手参考教程安装ROS gazebo PX4基础细节及offboard控制 1 安装ROS 参考教程 2 安装PX4 参考教程 注 xff1a 1 在编译px4 Firmware前会经过安装步骤 xff0c 安装需要去github上git
  • 无人机模型记录

    今天看了这篇知乎 xff0c 收获非常大 xff0c 实现了一个非常基础的无人机动力学以及运动学模型 xff0c 包括公式推导等 xff0c 也解决了困扰我很久的问题 xff0c 在此基础上就可以加入控制算法 xff0c 设置轨迹等 htt
  • VMware安装Ubuntu20.04.5常见问题及解决方案

    文章目录 使用Xftp连接ubuntu系统ubuntu上安装指定版本nodejsubuntu设置连网ubuntu安装Java8ubuntu安装 deb格式软件ubuntu卸载 deb格式软件ubuntu中electron框架安装的缓存在如下
  • 无人机控制输入、PID控制

    无人机控制输入 PID控制 最近思路比较乱 xff0c 看到很多东西 xff0c 因为有各种控制 xff0c 需要在这里记录总结 控制输入 结合以下两个链接理解虚拟控制输入U1 U2 U3 U4 1 https blog csdn net
  • FreeRTOS学习(3)——任务创建和删除(静态)

    本代码是基于正点原子的STM32Mini板子 xff0c 结合其FreeRTOS课程进行学习 实验一 xff1a 设计4个任务 xff1a start task task1 task2 task3 start task任务 xff1a 用来
  • 华三交换机配置定时重启任务

    组网及说明 1 配置需求或说明 1 1 适用产品系列 本案例适用于如S7006 S7503E S7506E S7606 S10510 S10508等S7000 S7500E S10500系列 xff0c 且软件版本是V7的交换机 1 2 配
  • RTK差分通讯链路---Ntrip DTU(支持千寻位置,CORS站、自建站)

    在之前的博客中提到RTK差分通讯链路 电台 RTK技术的关键在于其获取了载波相位的观测量 xff0c 通过架设基准站和移动站 xff0c 利用电台的通讯方式 xff0c 使得移动站通过差分方式消除观测数据误差实现高精度 还有一种通讯方式 x
  • 北斗/GPS如何处理定位漂移?

    漂移是北斗 GPS导航时需要处理的问题之一 xff0c 漂移主要有两个方面 xff0c 第一 xff0c 速度过快 xff0c 以至于北斗 GPS的响应时间短于当前运行速度 xff0c 出现漂移 xff1b 第二 xff0c 在高大建筑密集
  • Jetson nx批量复制

    Jetson NX 批量克隆教程 文章目录 Jetson NX 批量克隆教程一 批量克隆是什么 xff1f 二 克隆步骤1 准备材料2 备份镜像3 克隆新SD卡 解压失败问题参考 一 批量克隆是什么 xff1f 辛辛苦苦在Jetson Xa
  • FreeRTOS一些常识笔记之快速上手

    一 为啥要用实时多任务操作系统 real time Operate System 简称有 xff1a RTOS xff0c 有如下的好处 用户无需关心时间信息 内核负责计时 xff0c 并由相关的API完成 xff0c 从而使得用户的应用程
  • Prometheus+node_exporter+grafana监控部署(上)

    目录 一 部署Prometheus 二 部署node exporter 三 把node exporter加载进Prometheus 四 部署grafana 一 部署Prometheus 1 从官网下载好Prometheus的安装包 2 解压
  • Zookeeper入门篇

    Zookeeper特性 xff1a Zookeeper xff1a 一个领导者 xff08 Leader xff09 xff0c 多个跟随者 xff08 Follower xff09 组成的集群 集群中只要有半数以上 xff08 不包括半数
  • 源码编译ROS的导航包navigation、编译navigation、也有安装navigation二进制包方式

    1 创建工作空间 span class token function mkdir span nav ws src p span class token function cd span nav ws src catkin init work
  • 深度无人机的视觉检测与跟踪神经网络:性能基准

    Unmanned Aerial Vehicle Visual Detection and Tracking using DeepNeural Networks A Performance Benchmark 深度无人机的视觉检测与跟踪神经网
  • 基于yolov5+fastreid+deepsort的TensorRT目标跟踪(C++版)复现过程

    基于yolov5 43 fastreid 43 deepsort的TensorRT目标跟踪 大部分的多目标跟踪项目都是用Python写的 xff0c 但是C 43 43 版本能够用TensorRT进行加速 xff0c 适合在边缘端部署 xf
  • JavaScript之定时器

    定时器 一 setTimeout 定时器二 停止 setTimeout 定时器三 setInterval 定时器四 清除setInterval 定时器五 电子时钟案例 在很多页面中 xff0c 我们都可以看到一些倒计时或者和时间相关的效果
  • JavaScript - 防抖与节流 基础代码

    防抖 无论触发了多少次函数 只执行最后一次函数 多次触发合并为一次 span class token tag span class token tag span class token punctuation lt span body sp