首页 > 其他分享 >js防抖和限流函数

js防抖和限流函数

时间:2024-05-15 13:57:07浏览次数:23  
标签:function ... 防抖 args timer js delay 限流 let

function debounce(fn, delay) {
      let timer;
      let tht = this;
      return function (...args) {
        clearTimeout(timer)
        console.log(...args)
        timer = setTimeout(() => { fn.apply(tht, args) }, delay)
      }
    }
    function throttle(fn, delay) {
      let timer;
      let tht = this;
      return function (...args) {
        if (timer) { return; }
        timer = setTimeout(() => {
          fn.apply(tht, args)
          timer = null
        }, delay)
      }
    }
    let divDom = document.getElementsByTagName('div')[0]
    let test = function (...args) {
      console.log('000000000000000000' + args)
    }
    //let ff = debounce(test, 1000)
    let ff = throttle(test, 1000)
    //divDom.addEventListener('click', ff)//无参数这样调用
    divDom.addEventListener('click', function () { //有参数这样调用
      ff(4, 5)
    })

 

标签:function,...,防抖,args,timer,js,delay,限流,let
From: https://www.cnblogs.com/howhy/p/18193709

相关文章

  • 2023JSCPC江苏省赛
    2023江苏省赛Dashboard-2023JiangsuCollegiateProgrammingContest,2023NationalInvitationalofCCPC(Hunan),The13thXiangtanCollegiateProgrammingContest-CodeforcesI-Elevatorvoidsolve(){cin>>n>>m;cout<<n-m+1<<......
  • mysql+node.js前后端交互(简单实现注册登录功能)
    目录 sql文件 user.js注册部分  登录部分 对应的表操作usersql.js result.js用户提交的信息会进行格式化 ......
  • NodeJS
    1、node、npm安装及使用NPM(NodePackageManager)是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:1)允许用户从NPM服务器下载别人编写的第三方包到本地使用。2)允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。3)允许......
  • jsonpath表达式
    例子:{"code":10000,"msg":"操作成功","traceId":"","timestamp":1715677467068,"data":[{"id":"509","na......
  • fastjson和 gson 的反序列化的一个差异
     publicclassResponse01{privateThirdDatathirdData;publicThirdDatagetThirdData(){returnthirdData;}//ThirdDataextendBaseThirdDatapublicvoidsetThirdData(BaseThirdDatathirdData){thi......
  • 探索Vue.js:从基础到进阶
    前言随着现代Web应用程序的日益复杂,前端开发框架也在不断演进,为开发者提供更强大、更高效的工具和技术。在这些框架中,Vue.js以其简洁、灵活和响应式的特点而备受青睐。本文将带领读者深入探索Vue.js,从基础概念到进阶技巧,让你全面了解这个令人惊叹的前端开发框架。Vue.js基......
  • mockjs: 前端模拟后端
    mockjs参考:https://blog.csdn.net/Mme061300/article/details/1303432701.入门:vue引入mockjsvue3引入mockjsnpminstallmockjs--save-dev在项目中创建一个mock数据文件,例如mockjs/data.js`://mock/data.jsimportMockfrom'mockjs'constUser=Mock.mock({......
  • fastjson的使用
    Json是一种轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。Fastjson是一个Java库,可用于将Java对象转换为其JSON表示形式,也可以......
  • JSON
    JSON笔记1、什么是JSON?SON(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生......
  • Node.js如何安装?Node.js各版本的区别?如何选择合适的版本?
    初步学习了解Node.js,首先第一个问题就是给自己电脑上装Node.js既然要安装那就要找官方下载地址:官网下载地址:https://nodejs.org/en/download找到了下载地址:里面那么多的版本,应该选择哪个呢?初学不懂这些版本。下面对这些版本的区别做个大概的介绍这两种版本有什么区别?Node.js......