首页 > 其他分享 >JS防抖函数加强版

JS防抖函数加强版

时间:2022-12-27 23:34:14浏览次数:37  
标签:防抖 加强版 timer times timer2 ------ JS

JS防抖函数加强版

debounce(fn, wait = 500,immediate = false) {
    let timer = null
    let timer2 = null
    let times = 0
    return function(...args) {
        if (timer2) {
          clearTimeout(timer)
          clearTimeout(timer2)
        }
        // ------ 新增部分 start ------ 
        // immediate 为 true 表示第一次触发后执行
        // timer 为空表示首次触发
         if (immediate && !timer) {
             times++
             fn.apply(this, args)
         }
        // ------ 新增部分 end ------ 

         timer = setTimeout(() => {
            if(times == 0 ){
              times++
              fn.apply(this, args)
            }
         }, wait)
        timer2 = setTimeout(() => {
          times = 0
        },2000)
    }
  }

  

标签:防抖,加强版,timer,times,timer2,------,JS
From: https://www.cnblogs.com/yooojoy/p/17009240.html

相关文章

  • JS打印
    Javascript网页打印大全普通打印(整页打)     打印网页内部分内容(自定义)       打印去掉/添加页眉页脚           使用外部控件/方法实现多功能打......
  • cpp jsoncpp serialize vector class into plain text file and deserialize from pla
    //model/book.h#pragmaonce#ifndef__book_h__#define__book_h__#include<iostream>usingnamespacestd;structbook{uint64_tidx;uint64_tid;......
  • Node.js与npm
    Node.js与内置模块什么是Node.jsNode.js®isaJavaScriptruntimebuiltonChrome'sV8JavaScriptengine.Node.js是一个基于ChromeV8引擎的JavaScript运行......
  • json中的json.parseObject()方法和json.tojsonString()方法
    JSON.parseObject,是将Json字符串转化为相应的对象;JSON.toJSONString则是将对象转化为Json字符串。在前后台的传输过程中,Json字符串是相当常用的,这里就不多介绍其功能了,直接......
  • 学习js的一些笔记
     1,对变量的一些认识在学习java的过程中,我对变量的理解,其实就是一个在运行期进行简单储存的数据的内存空间,运行期结束后就会在各个代码的垃圾回收机制中在内存空间中消除......
  • Json过滤
    varsettings=newJsonSerializerSettings{NullValueHandling=NullValueHandling.Ignore,ContractResolver=ShouldSe......
  • JS如何做页面重定向
    cattencent.html <html><head><title>Welcometonginx,Allen!</title><scripttype="text/javascript">location="http://app100630301.imgcache.qzoneapp.com/app100630......
  • JStorm使用总结
    JStorm是一个类似HadoopMapReduce的系统,用户按照指定的接口实现一个任务,然后将这个任务递交给JStorm系统,JStorm将这个任务跑起来,并且按7*24小时运行起来,一旦中间一个Wo......
  • JS_倒计时
    //d=parseInt(总秒数/60/60/24);//计算天数//h=parseInt(总秒数/60/60%24);//计算小时//m=parseInt(总秒数/60%60);//计算分钟数//s=parseInt(总秒......
  • IOS中Json解析的四种方法
    作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验(​​......