小程序使用注意事项

1.模板消息

小程序模板消息需要关联生活号,并绑定到小程序上。

https://docs.alipay.com/mini/introduce/message

模板消息由服务端请求接口产生

2.登录有效期的处理

  http.doRequest(url, body, header).then(resolve, err => {

                //登录失效,重新登录一次

                if (err && err.code && (err.code === '-1' || err.code === -1)) {

                    _this.doLogin().then(token => {

                        header[`${SESSION_KEY_NAME}`] = token;

                        http.doRequest(url, body, header).then(resolve, reject);

                    }, reject);

                    return;

                }

                reject(err);

            });

http请求返回-1时,进行登录操作,调用授权获取token,并把之前的http请求再执行一遍

3.同一个页面tab切换

注意减少网络请求,及分页

设置 tabList[],某一项为{

      title: '未使用',

      loaded: false,

      loading: false,

      completed: false,

      params: {

        type: 'notuse',

        start: 0

      },

      list: []

},

再设置currenLsit 为其某一项

 

4.定时器(倒计时及轮询)

倒计时:

 

timer:null,

Second:60,

plusSecond(){//数字减少

        if(this.data.second > 0){

                let plusSecond = this.data.second -1;

                this.setData({

                    second:plusSecond

                });

        }else{

            this.setData({

                second:60,

                codeGetting:1,

            })

        }

    },

   startTimer(){//开启定时器

       this.plusSecond();

       let _this = this;

       this.setData({

           timer: setTimeout(() => {

               _this.startTimer();

           }, 1000)

       });

   },

    stopTimer() {//定时器停止

        if (this.data.timer) {

            clearTimeout(this.data.timer);

            this.setData({

                timer: null,

                second:60,

                codeGetting:1,

            });

        }

},

轮询网络请求时应注意,查询超时要丢弃该次查询

//单次查询耗时超时,丢弃该查询

                let endTime = new Date().getTime();

                let perUsedTime = endTime - startTime;

                if (perUsedTime > _this.data.perTimeout) {

                    console.log('轮询机制超时,break掉');

                    return;

                }

 

5.防止暴力点击或切换tab时网络加载不及时导致的数据错乱

解决:使用时间戳

点击时设置时间戳变量

this.setData({

timeStamp:new Date().getTime()

});

判断时间戳是否符合条件

 let timeStamp = this.data.timeStamp;

     this.doRequest($orderListUrl, this.data.params).then(res => {

         if (timeStamp !=  this.data.timeStamp){

             return;

         }

})

6.网络请求传递参数为Object时,需转化成String

使用JSON.stringfy()

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值