js实现防抖函数,输入框持续输入打印最终的值

2023-10-30

js实现防抖函数,输入框持续输入打印最终的值

防抖是闭包的实际应用之一

一、防抖函数:

**概念:**当高频事件持续触发时,只有当一定时间内没有再次触发事件,事件才会执行一次,

若一定时间内再次触发事件,则重新计时。

比较类似lol中回城被打断后,再次回城需要重新读秒

二、实现代码:
<body>
<input type="text" id="input">
<script>
    // 输入框一直输入,停止输入后1秒后,才打印输出最终的值
    let debounceFunc = debounce(1000)
    let input = document.getElementById('input')
    input.addEventListener('keyup',function (e) {
        debounceFunc(e.target.value,fn)//重复调用了返回的回调函数
    })
    /**
     * 防抖函数
     * @param delay 延时时间
     * @param value 传入值
     */
    function debounce(delay) {
        let timer
        return (value,callback)=>{
            clearTimeout(timer)
            // 需要清除的timer,利用闭包将timer一直保存在内存之中
            timer = setTimeout(()=>{
                // console.log(value) // 若结果不再此处输出
                callback(value);
            },delay)
        }
    }
    //回调函数
    function fn(value) {
        console.log('callback',value)
    }
    //防抖函数实际应用:
    //1、使用echarts时,改变浏览器宽度,希望重新渲染
    //2、搜索时输入真正结束n秒后,才发送搜索请求

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

js实现防抖函数,输入框持续输入打印最终的值 的相关文章

随机推荐

  • 【Three.js】第六章 Animations 动画

    06 Animations动画 介绍 我们创建了一个场景 我们在代码末尾渲染了一次 这已经是不错的进步了 但大多数时候 您会想要为您的作品制作一些动态效果动画 使用 Three js 时 动画效果类似于定格动画 您移动对象 然后进行渲染 然
  • 3、OC运算符优先级

    OC运算符有以下几种 1 算术运算符 2 赋值运算符 lt lt gt gt 3 比较运算符 gt lt gt lt 4 逻辑运算符 5 位运算符 lt lt gt gt 6 类型相关运算符 运算符优先级如下 优先级 运算符 名称或含义
  • QML(一):自定义圆角按钮的处理

    设计自己的按钮作为组件使用 1 设置相关属性 供外部组件调用时 直接更改属性改变组件样式 定义不同圆角状态下的按钮 enum Style NormalButton LowRoundCornerButton HighRoundCornerBu
  • 分页页码的前端显示的实现

    分页页码的前端显示实现 效果说明 准备做分页的时候滚回去找了一下之前写过的demo结果被自己写的丑哭了 大概长这样 主要是不符合现在一般网站的跳转习惯 自己用着都觉得不方便 所以重新写了一下新的分页的前端 顿时觉得舒服了许多 js思路 首先
  • 用python爬取网站小说,帮你们省下会费

    第一步 导库 import requests from lxml import etree 第二步 请求头 headers User Agent Mozilla 5 0 Windows NT 6 1 Win64 x64 AppleWebKi
  • androidstudio无法真机安装debug包 android无法安装debug包 oppo vivo

    1 adb 无法安装debug包 adb install t apk path 绝对路径 2 android stduio 连接设备 点击run 安装失败 1 在application 节点下新增android testOnly true
  • 腾讯mini项目-【指标监控服务重构】2023-07-19

    今日已办 OpenTelemetry Logs 通过日志记录 API 支持日志收集 集成现有的日志记录库和日志收集工具 Overview 日志记录 API Logging API 允许您检测应用程序并生成结构化日志 旨在与其他 teleme
  • 输入IP使用JDBC读取数据库信息并返回具体地址

    思路分析 定义连接类 连接数据库 定义properties 存放mysql信息 读取properties 注册驱动 获取连接 定义测试类 运行主程序 定义输入类 检测控制台输入 定义正则表达式 对输入的ip进行判断 判断通过则调用核心逻辑
  • c++利用libcurl获取http网页的 response headers 等信息

    参考 http www update8 com Program C 26438 html libcurl 7 32 0下载地址 http download csdn net detail chuanyu 9226175 demo下载地址 h
  • 摘要(Hash)算法总结

    数据摘要算法具有不可逆性 其主要功能有数据签名 数据完整性校验等 下面介绍常见的数据摘要算法 一 CRC8 CRC16 CRC32 CRC Cyclic Redundancy Check 循环冗余校验 算法出现时间较长 应用广泛 尤其是通讯
  • 机考[21-30]

    华为机考 021 喊7的次数重排 022 猴子爬山 023 滑动窗口最大和 024 火星文计算 025 计算面积 026 计算最大乘积 027 检查是否存在满足条件的数字组合 028 矩阵扩散 029 矩阵最大值 030 考勤信息 021
  • Vue3子组件向父组件传值

    需要用到emit 举个栗子 比如希望子组件 newHeader vue 向父组件 news vue 传labelId 子组件中先定义一个函数 用于传值 以下是写在子组件 newHeader vue 中的代码 其中 getLabelId是在子
  • unity更改帧率的方法

    介绍 unity更改帧率的方法 方法一 通过编辑器更改帧率 a 在Unity编辑器中 选择 Edit 编辑 菜单 然后选择 Project Settings 项目设置 b 在 Project Settings 中选择 Time 时间 选项卡
  • Python解释器以及PyCharm的安装

    通过CSDN上 大神写的教程 安装了PyCharm 现自己总结Python解释器安装以及PyCharm安装过程 一 Python解释器安装 解释器 英语 Interpreter 又译为直译器 是一种电脑程序能够把高级编程语言一行一行直接转译
  • python中__call()__函数和TensorFlow中call()函数的区别

    在使用python的时候 经常用到python中的特殊函数 call 函数 但是学习TensorFlow的时候 又会看到自定义模型的时候 经常用call 函数 不懂他们之间的区别 python中的 call 函数和TensorFlow中的c
  • Switch NS 通过华硕梅林路由DNSMASQ屏蔽任天堂服务器

    好吧 我是把我的古董NS机给大气层了 今天来说下如何通过dnsmasq把任天堂的服务器给屏蔽了 虽然我还没有测试过这个屏蔽是否能够避免BAN机 作者免责声明 本文以下内容不对其有效性 安全性 可靠性负责 利用本文所提出的技术内容产生的一切正
  • 【KubeEdge V1.10.0安装】Vmware Workstation17pro、CentOS 7系统、keadm教程

    因为个人原因需要使用虚拟机搭建kubeedge 之前成功装过一次 但是未记录安装步骤 后续虚拟机崩了 需要重新安装 本文仅为整理记录 安装主要参考文章链接如下 http t csdn cn sMnFa PS 吐槽一下1 7版本 cloudc
  • 接口测试(一)

    目录 1 接口的定义 2 接口的类型 3 接口测试的类型 4 web接口测试 4 1 Web 接口测试的方法 4 2 Web 接口的测试点 接口测试的准备 用工具postman进行web测试 实战一之登录接口 实战二之支付接口 实战三发送红
  • springBoot设置不同环境配置文件

    配置 根目录下新建三个环境的配置文件 application dev properies开发环境 application test properties 测试环境 application prod properties 正式环境 在appl
  • js实现防抖函数,输入框持续输入打印最终的值

    js实现防抖函数 输入框持续输入打印最终的值 防抖是闭包的实际应用之一 一 防抖函数 概念 当高频事件持续触发时 只有当一定时间内没有再次触发事件 事件才会执行一次 若一定时间内再次触发事件 则重新计时 比较类似lol中回城被打断后 再次回