ホームページ > WeChat アプレット > ミニプログラム開発 > WeChat開発中の切断とリロードの解決策

WeChat開発中の切断とリロードの解決策

Y2J
リリース: 2017-05-05 11:16:03
オリジナル
6072 人が閲覧しました

分析

微信小程序目前没有提供刷新API,所以要自己去记录当前操作,点击刷新重新执行一遍
ログイン後にコピー

効果

WeChat開発中の切断とリロードの解決策

「再読み込み」をクリックしてページを再読み込みします

実装

プロジェクトを実行するとき、ページレンダリングをインターフェースリクエストから分離できないため、wxをカプセル化しました。リクエストネットワークが切断されているかどうかを判断し、ネットワーク切断後にこのリクエストを記録します

    /**
     * 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に戻り、ネットワークが切断されているかどうかを判断します

[関連の推奨事項]

1. WeChatミニプログラムの完全なソースコード

2. WeChatミニプログラムのデモ:Yangtao

以上がWeChat開発中の切断とリロードの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート