博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序开发-断网重新加载问题
阅读量:5936 次
发布时间:2019-06-19

本文共 1557 字,大约阅读时间需要 5 分钟。

分析

微信小程序目前没有提供刷新API,所以要自己去记录当前操作,点击刷新重新执行一遍

效果

图片描述

点击‘重新加载’重新加载页面

实现

由于做项目时,页面渲染离不开接口请求,所以我封装了一下wx.request来判断是否断网,及断网后记录本次请求

/**     * obj  request请求参数     * cb   requrst请求成功回掉     * page 当前page实例    **/    function wxRequest (obj, cb, page, type) {        var isOne = true        var cachFn = function () {            wx.request({                  url: obj.url,                  data: obj.data || {},                  method: obj.method || 'GET',                  success: function (res) {                    cb.call(page, res)                    if (!page.data.isNet) {                        page.setData({                            isNet: true                        })                    }                  },                  // fail执行时当断网处理                  fail: function () {                      // 防止fail 有时会执行两次,影响渲染                      if (!isOne) {                          return                      }                    page.setData({                        isNet: false,                        isRequested: false                    })                    // 记录本次请求,加载时,执行page实例的reloadFn即可                      page.reloadFn = wxRequest(obj, cb, page, 1)                      isOne = false                  }            })        }            if (type) {            page.isRequested = true        }            return type ? cachFn : cachFn()    }

应用

let data = {      url: '',      data: {},      method: ''    }    wxTools.wxRequest(data, (res) => {        // 数据渲染        this.setData({})    }, this)

断网时,执行this.reloadFn就回重新上一次请求,isNet及判断是否断网

转载地址:http://bjttx.baihongyu.com/

你可能感兴趣的文章
AngularJs 基础(60分钟入门) (转)
查看>>
Codeforces Round #425 (Div. 2) - B
查看>>
Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) - D
查看>>
设计模式之(十八)策略模式Strategy
查看>>
codeforces 707E Garlands (离线、二维树状数组)
查看>>
改进的SQL Express LocalDBB
查看>>
[nodejs] nodejs开发个人博客(七)后台登陆
查看>>
[javaEE] EL表达式获取数据
查看>>
[android] post请求接口demo测试代码
查看>>
关于android中事件传递和分发的一些小理解
查看>>
利用 GNU autotools
查看>>
JavaEE和Tomcat环境
查看>>
mybatis的oracle的in超过1000的写法
查看>>
EF的使用<三>
查看>>
11月28日进度
查看>>
nginx 图片缓存
查看>>
玩转X-CTR100 l STM32F4 l AT24C02 EEPROM存储
查看>>
判断远程文件是否存在
查看>>
MS CRM 2011的自定义与开发(12)——表单脚本扩展开发(1)
查看>>
【转】「UI 测试自动化selenium」汇总
查看>>