首页 > 编程语言 >微信小程序防抖

微信小程序防抖

时间:2023-01-31 00:00:32浏览次数:39  
标签:function 防抖 console log 微信 程序 time null

微信小程序闭包-防抖

这里主要用到闭包,将函数内的值保存下来,下次点击的时候进入判断,如果定时器启动了,则清除定时器,直到最后一次启动定时器,也就是说,在规定的时间内只会触发最后一次定时器,从而达到防抖效果。

防抖的使用场景:

  • 防止连续快速点击
  • 防止滚动条触底时的频繁事件触发

方法一:

 data: {
    name : null 
  },
  time : null,

  // 滚动条触底
  scrollLower(){
    console.log('触底',this.time);
    clearTimeout(this.time) 
    this.time = setTimeout(()=>{
      console.log('防抖',this.time);  
    },1000)
  },

方法二:

  // 滚动条触底
  scrollLower(){
    this.light()  // 如果要携带参数在这
 
  },
  
  light : (function() {
      let i = null
     console.log('触底',i);
      return function() {   // 接收携带的参数在这
          if(i != null) clearTimeout(i)
          i = setTimeout(()=>{
              console.log('防抖',i);
          },1000)
      }
  })(),

微信小程序外层不支持const fn = function() 这种语法,所以这里只能以对象的形式定义函数:fn : function(){}


js闭包

    <button id="attick">点击</button>

    <script>
        let attick = document.getElementById('attick')
        attick.addEventListener('click',function(){
            light()
        })
          // 点击
          const light = (function() {
            let i = null
           console.log('点击',i);
            return function() {
                if(i != null) clearTimeout(i)   // 清除定时器
                i = setTimeout(()=>{
                    console.log('点击000',i);  // 1s内无操作才会触发且只触发最后一次
                },1000)
            }
        })()
    </script>

标签:function,防抖,console,log,微信,程序,time,null
From: https://www.cnblogs.com/wang-fan-w/p/17077589.html

相关文章

  • 微信小程序wx.navigateTo跳转参数大小超出限制问题
    微信小程序的跳转方式wx.navigateTo(Object):保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页(新页面入栈)wx.redirectTo(Object):关闭当前页面,跳......
  • 微信小程序项目中使用icon图标
    效果:步骤:1、先让ui负责人把你的账号加入到项目中,加入到项目中后就可以在icon图标库中看到该项目2、在小程序中使用新建一个view,在上面加一个class,复制icon名字上去即......
  • uniapp运行到小程序模拟器没有反应
    已经配置过配置小程序ide的相关路径,但是点击运行到微信开发者工具没有反应解决方法1、微信开发者工具,开启服务端口,设置->安全->勾选服务端口2、在Hbuilder中设......
  • 电脑微信小程序抓包
    电脑微信小程序抓包 在渗透的过程中,对于网站找不出什么漏洞的时候我们就可以,对目标进行小程序和公众号漏洞的发掘0x01设置微信代理使用Burp抓取数据包 发现我......
  • 京东联盟-怎么跳转到京东购物小程序领券下单
    大家好,我是小悟我们在自己的小程序里接入京东联盟,实际上模式是用户点击商品详情页下单,然后跳转到“京东购物”小程序领券下单(像下面那样),但是这个接口是需要申请的,且自有小......
  • 通过Edgio的EdgeJS最大限度提升您的应用程序的CDN性能
    关于在边缘战略性缓存动态内容的入门知识:它是如何工作的,以及为什么它比传统CDN更好。说到性能方面,大多数CDN提供商都做得很好,它们可以快速交付静态内容,为高峰流量期降低......
  • 每个前端程序员都应该知道的10个Chrome扩展
    开发人员一直在寻找使他们的生活更轻松、更高效的方法,因为我们都知道开发应用程序的过程并不像听起来那样结构化。您会遇到各种错误和障碍,可能需要几天时间才能克服。所以......
  • 小熊猫C++编写海龟作图程序
    未完待续。。。初遇问题使用内置的模板创建海龟作图小程序:但是,编译运行时出现错误:rturtle海龟绘图命令小结在小海龟行动之前,我们需要熟悉一下绘图环境。这里用列表小结一下......
  • matlab练习程序(三体模型)
    最近在看三体电视剧,正好看到了计算三体数值解那一部分,就想起了上学时看三体,也用matlab实现了三体的运动模拟。不过当时是通过时域外推的方式实现的,不是很严谨。下面通过......
  • 【悲伤的Debug日志】Windows Anaconda 运行报错 ImportError: DLL load failed while
    今天在Windows10上安装Anaconda(Anaconda|AnacondaDistribution)。首次安装选择了“在所有用户上安装”,发现进入下一步时无法勾选“将Anaconda加入PATH环境变......