首页 > 其他分享 >第二篇 手写原理代码 - 函数【 函数防抖 、函数节流 】

第二篇 手写原理代码 - 函数【 函数防抖 、函数节流 】

时间:2023-04-11 23:26:51浏览次数:35  
标签:防抖 函数 args delay flag 节流

函数防抖和函数节流都是优化高频事件处理的JavaScript技术。它们可以限制函数的调用,在一定程度上减少计算、网络请求和提高响应速度,但它们的实现方式略有不同

函数防抖:延迟执行函数,只有在事件停止后才会执行最后一次事件

函数节流:定期执行函数,每隔一段时间执行一次

通常情况下,函数节流适用于需要保持连续操作(如鼠标移动)而不影响交互的情况,函数防抖通常用于输入框、搜索、登录等场景

1、函数防抖

const debounce = (fn, delay = 500) => {
  let timer;
  return function (...args) {
    timer && clearTimeout(timer);
    timer = setTimeout(() => {
      fn.apply(this, args);
    }, delay);
  };
};

2、函数节流

const throttle = (fn, delay = 300) => {
  let flag;
  return function (...args) {
    if (flag) return;
    flag = setTimeout(() => {
      fn.apply(this, args);
      flag = null;
    }, delay);
  };
};

标签:防抖,函数,args,delay,flag,节流
From: https://www.cnblogs.com/caix-1987/p/17308230.html

相关文章

  • 第四篇 手写原理代码 - 函数 【 实现 compose 函数 】
    JavaScript中的Compose函数用于组合一些函数,使得每个函数都接收上一个函数的返回值作为参数,并返回一个新的函数。可以使用这种方式把多个函数串起来,从而实现更复杂的逻辑Comopse函数是一个非常有用的工具,它可以帮助我们简化程序逻辑,实现代码复用,提高开发效率实现compose......
  • 流程控制,函数
    目录一、流程控制1、条件语句2、循环语句二、函数1、函数2、date_format实际应用一、流程控制1、条件语句if条件语句delimiter//CREATEPROCEDUREproc_if()BEGINdeclareiintdefault0;ifi=1THENSELECT1;ELSEIFi=2THENSEL......
  • 三类常见的可积函数积分
    常见可积函数积分三角有理积分令\(tanx\frac{x}{x}=t\)\(\intR(sinx,cosx)dx=\intR(\frac{2t}{1+t^2},\frac{1-t^2}{1+t^2})\frac{2}{1+t^2}\)推导公式\(\tanx与\sinx的转化\)令\(\tan\frac{x}{2}=t\)\(sinx=2*sin\frac{x}{2}*cos\frac{x}{2}\),分......
  • 函数的定义与调用
    函数定义和使用函数定义function函数([参数1,参数2...]){方法体[返回值]}//定义函数functiongetAge(price,number){varsum=price*number//函数体returnsum;//返回值}函数调用getAge(10,5);//调用函数functioncheckName(){vare=form.username......
  • 常用字符串处理函数
    1split以某一字符来分割字符串  2substring从第零位截取前五个去掉前六个字符3操作数组 ......
  • 如何实现一个惰性函数
    惰性函数指在函数运行过程中,当无需重复校验判断的模块,频繁调用时,可以考虑惰性函数的思路比如 functionhandleFn(){if(当满足这个条件时){return(arg)=>{所需执行的代码}}else{当其他条件时return(arg)=>{所......
  • C++核心编程之-函数提高
    函数提高函数默认参数在c++中,函数的形参列表中的形参是可以有默认值的。语法:返回值类型函数名(参数=默认值){}注意点:1、如果某个位置参数有默认值,那么从这个位置往后,必须都要有默认值​ 2、如果函数声明有默认值,函数实现的时候就不能有默认参数函数占位参数C++中......
  • 新的 CSS 伪类函数 :is() 和 :where()
    新的CSS伪类函数:is()和:where()Postedon 2022-08-1514:39  书中枫叶 阅读(48) 评论(0)  编辑  收藏  举报:is()和:where()标题中的 <b> 标签进行颜色调整: h1>b,h2>b,h3>b,h4>b,h5>b,h6>b{ color:hotpink; }......
  • 面向对象 程序分析 友元函数
    什么是友元函数?友元函数(friendfunction)是C++中一个特殊的函数类型。它不是类的成员函数,但它可以访问类的私有(private)和保护(protected)成员。友元函数提供了一种突破类封装的机制,允许在类之外的代码访问类的私有和保护成员。当你想要让某个函数访问一个类的私有和保护成员时,可以......
  • vue生命周期(钩子函数)
    目录介绍介绍Vue实例有一个完整的生命周期,也就是从开始创建初女台化数据、编译模板、挂载DOM、渲染一更新一渲染、卸载等一系列过程,我们称这是Vue的生命周期。生命周期:vue实例从创建到销毁的过程。生命周期钩子:就是生命周期事件的别名而已钩子函数描述创建期间的......