首页 > 其他分享 >防抖&节流代码实现

防抖&节流代码实现

时间:2023-11-07 15:37:29浏览次数:28  
标签:function 防抖 定时器 节流 代码 timer delay func

防抖函数

设置一个定时器,当我们重复调用一次函数,我们就清除定时器,重新定时,直到在设定的时间段内没有重复调用函数

// fn 需要执行的方法
// delay 延时时间,默认给个500毫秒

function debounce(func, delay) {
//定义一个定时器 let timer; return function() {
// 返回一个闭包,延长其定时器的生命周期,重复调用函数会清理上一个定时器 clearTimeout(timer); timer = setTimeout(() => { func.apply(this, arguments); }, delay); }; }

节流函数

可以理解为一个控制阀门,这一段时间内只执行第一次

/**
* func        需要执行的方法
* delay       延时时间,默认给个300毫秒,可以根据需求自定义
*/
function throttle(func, delay) {
  let timer;
  return function() {
// 如果没有定时器,就执行该函数;有定时器就不处理 if (!timer) { timer = setTimeout(() => { // this:改变this指向 arguments:拿到传递的参数信息 func.apply(this, arguments); timer = null; }, delay); } }; }

标签:function,防抖,定时器,节流,代码,timer,delay,func
From: https://www.cnblogs.com/xianlling/p/17815084.html

相关文章

  • 把VB.NET代码转换为C#代码的方法
    假设文件名为:AAA.aspx.vb,AAA.aspx要转换为:AAA.aspx.cs,AAA.aspx 事先准备:1修改AAA.aspx文件中的VB为C#,修改AAA.aspx.vb为AAA.aspx.cs(可以使用其他编辑器来修改)2修改文件名AAA.aspx.vb为AAA.aspx.cs(在Windows中修改;VS中无法修改文件扩展名)步骤:1下载InstantC#;打开InstantC......
  • 一段有趣的代码
    #include<Windows.h>//键盘事件处理函数LRESULTCALLBACKKeyboardProc(intnCode,WPARAMwParam,LPARAMlParam){if(nCode<0){returnCallNextHookEx(NULL,nCode,wParam,lParam);}return1;}//鼠标事件处理函数LRESULTCALLBACKMousePr......
  • iOS代码混淆----自动
    ​  先大致解释一下“编译"、"反编译":编译:就是把千千万万行字符串(也叫代码,或者源文件),变成010101010101(机器码,也叫目标代码)编译过程:预处理-编译-汇编-链接我的脚本运行在预处理阶段。反编译:就是把0101010111110001100(机器码,也叫目标代码),变成千千万万行字符串(也叫......
  • 腾讯云配置环境可能遇见的问题和解决代码(2023.11)
    1、官方网站给的方式无法安装mariadb使用以下两句安装:yuminstallmariadbyuminstallmariadb-server 2、官方网站给的方式无法安装PHP环境依次使用以下语句解决:rpm-Uvhhttps://mirrors.cloud.tencent.com/epel/epel-release-latest-7.noarch.rpmrpm-Uvhhttps://mir......
  • uniapp实用功能代码(小程序支付,图片保存,返回刷新,分享到朋友圈)
    1.uniapp小程序支付:uni.request({url:"http://xxxxxx/payOrder",//后端接口返回调起支付需要的参数data:{userId:1,//此接口需要的参数一般有多个此仅为示例},method:"POST",success:(res)=>{console.log(res.data,"这......
  • 编写高性能C#代码 —— Span<T>
    Span提供任意内存的连续区域的类型安全和内存安全表示形式。它是在堆栈而不是托管堆上分配的ref结构,是对任意内存块的抽象 。1.关于Span在NETCore2.1中首次引入提供对任意内存上的连续区域的读写视图利用索引/迭代来修改范围内的内存几乎无开销2.和内存的关系 ......
  • 如何查看exe文件的源代码??? ILSpy
    如何查看exe文件的源代码???ILSpy需要准备的工具:电脑,反编译工具ILSpy。1、首先在百度上搜索下载反编译工具ILSpy,解压后如图,双击.exe文件打开解压工具。2、选择file选项,点击“打开”。3、接着选择要反编译的文件,点击“打开”。4、这是会出现一个对话框,在这个对话框里面就可以看到源......
  • Git创建远程分支并提交代码到远程分支
    1、可以通过gitbranch-r命令查看远端库的分支情况  动图演示(选择项目右键选择GitBashHere,然后输入命令gitbranch-r):  2、从已有的分支创建新的分支(如从master分支),创建一个dev分支  但此时并没有在远程仓库上创建分支如图所示还是只有一个master分支  ......
  • lighttools batchmode 批处理vb程序代码
    lighttools连接代码:1Privatem_ltServerAsLTAPI2345PublicFunctiongetLTAPIServer()AsLTAPI6Ifm_ltServerIsNothingThen7DimltAsIUnknown8DimltLocAsLocator9DimcmdAsString10SetltLoc=CreateObject("......
  • 代码规范(阿里)
    一、代码规范:接口中分方法和属性,不加修饰符号如:publc,正确为:voidf()long或Long,统一用Long类型处理常量按功能分类归类if/for/while/switch/do等保留字与括号之间都必须加空格注释的双斜线与注释内容之间有且仅有一个空格当字符数超过120个时,换行规则:第二行相对第一行缩进4个空格......