Maison >Applet WeChat >Développement de mini-programmes >Solution à la déconnexion et au rechargement pendant le développement de WeChat

Solution à la déconnexion et au rechargement pendant le développement de WeChat

Y2J
Y2Joriginal
2017-05-05 11:16:036076parcourir

Analyse

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

Effet

Solution à la déconnexion et au rechargement pendant le développement de WeChat

Cliquez sur 'Recharger' pour recharger la page

Implémentation

Puisque lorsque l'on travaille sur un projet, le rendu des pages ne peut pas être séparé de la requête interface, j'ai donc encapsulé wx.request pour déterminer si le réseau est déconnecté, et enregistrement après la déconnexion du réseau Lorsque cette requête

    /**
     * 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()
    }

application

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

est déconnectée, exécutez this.reloadFn pour revenir à la dernière requête, isNet et déterminer si le réseau est déconnecté

【Recommandations associées】

1. Code source complet du mini-programme WeChat

2 Démo du mini-programme WeChat : Yangtao

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn