• 节流阀 只允许一次请求(避免重复点击)


     data: {
        //定一个状态 无论什么请求在数据回来之前 只允许请求一次 0:请求之前 1:请求结束
        apiOnce: 1,
    }
     
    methods:{
     //点击加载更多数据
      moreData() {
        //一进来默认阻止 只允许请求一次
        if (this.data.apiOnce == 0) {
          return
        }
        //不为0进来 重置请求状态
        this.setData({
          apiOnce: 0
        })
    }
     
    }

    success: (res) => {
                if (res.data.data.goods_list.length == 0) {
                  this.setData({     //success成功拿到结果过后把状态重置为1
                    apiOnce: 1
                  })
                }
              }
     
     
     
     
     
     
    第二种方法  : 点赞逻辑  防止用户重复点赞  当点击完成需要切换灰色图  再次 点击切换红色  (两张图 进行切换的防止重复点击)
     
    // 参数
    data"{
    
    
      flag:true  //没点过
    
    
    }
        //方法
    getTagsArticle(e) {
    const that = this; if (that.data.flag == false) { //一进来如果是点过了 那么就阻止
           wx.showToast({
                title: '正在点赞中,请稍等',
                  icon: 'none'
              })
              return
            }
            that.setData({    // 如果没点过 这次点击 切换为点过了
                flag: false
            })
    
            console.log(e)
            let num = e.currentTarget.dataset.num
            var postsData = {
                id: that.data.id,
                num: num
            }
            let dataInfo = requestSign.requestSign(postsData)
            header.sign = dataInfo
            wx.request({
                url: api.get_tagsArticle,
                data: postsData,
                header: header,
                method: 'POST',
                dataType: 'json',
                responseType: 'text',
                success: ({
                    data
                }) => {
    
                    console.log(data, '成功')
                    if (data.code == 1) {
                        if (num > 0) {
                            that.setData({
                                tagsNumber: that.data.tagsNumber + 1,
                                tags: 1
                            })
                        } else {
                            that.setData({
                                tagsNumber: that.data.tagsNumber - 1,
                                tags: 0
                            })
                        }
                      
                    } else {
                        wx.showToast({
                            title: data.message
                        })
                    }
    
    
    } })
    fail: (res) => {},
    complete: function () {
            setTimeout(function () { //成功过后 设置定时器 1 秒过后表示没点过按钮
              that.data.flag = true;
            }, 1000); //一秒内不能重复点击
          }
     
    ; }
     
  • 相关阅读:
    分页通信
    减少页面加载时间的方法
    config/index.js
    5.20 单词小记
    nginx启动报错(1113: No mapping for the Unicode character exists in the target multi-byte code page)
    Windows系统下hosts文件工作原理(转)
    5.19 英语单词小计
    mybatis sql语句转化
    (转) Java 静态代码块和非静态代码块
    5.18英语单词小记
  • 原文地址:https://www.cnblogs.com/xiaoxiaoxun/p/12134234.html
Copyright © 2020-2023  润新知