微信小程序> 小程序不要频繁发起请求(每次点击都发请求)可以通过这种方式实现唯一性并且只请求一次

小程序不要频繁发起请求(每次点击都发请求)可以通过这种方式实现唯一性并且只请求一次

浏览量:2546 时间: 来源:叶川飞流
  showClass(id){    console.log('学校id',id)    var that = this;    var myClassData = this.data.myData;    if (!(myClassData[id] && myClassData[id].length)){//限制只请求一次,当有数据时候就不发起请求了      wx.request({        url: 'https://haiyunht.langqiyun.cn/index/api/getTeacherClass?id=' + id,        header: {          'content-type': 'application/json' // 默认值        },        success(res) {          myClassData[id] = res.data.data;          that.setData({            myData: myClassData          });        }      })    }  }

完整代码:
html:

<!--addClass.wxml--><view class="container">  <view class="selectContain">    <view class="contain" wx:for="{{myClassData}}" wx:for-item="school" data-scid="{{school.id}}" wx:for-index="schoolIndex" data-num="{{schoolIndex}}" data-addTemp="{{school.addTemp}}" bindtap='collaFun'>      <view class="desc">        <view class="conLeft">          <view class="logo">            <image class="logoPic" src="logo.png"></image>          </view>          <view class="title">{{school.school_name}}</view>        </view>        <view class="open">          <image class="openPic" src="open.png"></image>        </view>      </view>      <view class="collapseItem" wx:if="{{school.addTemp}}" data-sccheck="{{school.addTemp}}">        <view class="colClass" wx:for="{{myData[school.id]}}" wx:for-item="class" wx:for-index="classIndex" data-scid="{{school.id}}" data-id="{{class.id}}" catchtap='radioFun'>          <radio color='#40CBE5' style="transform:scale(0.7);" checked="{{class.active}}" data-checktemp="{{class.addTemp}}" data-sc='{{schoolIndex}}' data-cl='{{classIndex}}'></radio>          {{class.class}}        </view>      </view>    </view>  </view>  <view class="btn">    添加班级  </view></view>

js:

//index.js//获取应用实例//自己写的多项复选框选择功能var util = require("../../utils/util.js");const app = getApp()Page({  data: {    checked: false,    activeNames: ['1'],    myClassData: [],    myData:[],    selectClass: {}  },  collaFun(e) {    var addTemp = e.currentTarget.dataset.addtemp;    console.log('scaddTemp', addTemp);    var num = e.currentTarget.dataset.num;    var scid = e.currentTarget.dataset.scid;    if (addTemp == false) {      for (let i = 0; i < this.data.myClassData.length; i++) {        if (i == num) {          this.setData({            ['myClassData[' + num + '].addTemp']: true          });        } else {          this.setData({            ['myClassData[' + i + '].addTemp']: false          });        }      }    } else {      this.setData({        ['myClassData[' + num + '].addTemp']: false      });    }    this.showClass(scid);  },  onLoad: function() {    this.loadData();  },  radioFun(e) {    var schoolId = e.currentTarget.dataset.scid;    var classId = e.currentTarget.dataset.id;    var selectClass = this.data.selectClass;    var myData = this.data.myData;    if (myData[schoolId]) {      for (let i = 0; i < myData[schoolId].length; i++) {        let item = myData[schoolId][i];        if (item.id == classId){          if (item.active) {            item.active = false;            if (selectClass[item.id]){              delete selectClass[item.id];            }          } else {            item.active = true;            selectClass[item.id] = item.id;          }        }        myData[schoolId][i] = item;      }      this.setData({        myData: myData,        selectClass: selectClass      });    }  },  getUserInfo: function(e) {    console.log(e)    app.globalData.userInfo = e.detail.userInfo    this.setData({      userInfo: e.detail.userInfo,      hasUserInfo: true    })  },  loadData() {    //获取缓存的老师id    var that = this;    util.getStoreInfo(that);    //获取老师的所有学校信息    wx.request({      url: 'https://haiyunht.langqiyun.cn/index/api/getTeacherSchool?id=' + this.data.tid,      header: {        'content-type': 'application/json' // 默认值      },      success(res) {        let data = res.data.data;        if (res.data.code == 200) {          that.setData({            myClassData: data          }, function() {            that.fieldAddClass();          });          console.log('that', that.data.myClassData)        }      }    })  },  fieldAddClass() {    const myClassData = this.data.myClassData;    console.log('myClaData', myClassData);    for (let i = 0; i < myClassData.length; i++) {      this.setData({        ['myClassData[' + i + '].addTemp']: false,        ['myClassData[' + i + '].loadData']: false,      });    }    console.log('myClaData', myClassData);  },  showClass(id){    console.log('学校id',id);    var that = this;    var myClassData = this.data.myData;    if (!(myClassData[id] && myClassData[id].length)){      wx.request({        url: 'https://haiyunht.langqiyun.cn/index/api/getTeacherClass?id=' + id,        header: {          'content-type': 'application/json' // 默认值        },        success(res) {          myClassData[id] = res.data.data;          that.setData({            myData: myClassData          });        }      })    }    console.log('myData000',that.data.myData);    console.log('idd',id)    var myDataInfo = that.data.myData[id];    console.log('myDataInfo.length', myDataInfo)    for (let m = 0; m <2;m++){        that.setData({          ['myDataInfo[' + m + '].addTemp']: false,        });    }    console.log('000', that.data.myData);     }})

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎