>  기사  >  위챗 애플릿  >  WeChat 개발 중 연결 끊김 및 다시 로드에 대한 솔루션

WeChat 개발 중 연결 끊김 및 다시 로드에 대한 솔루션

Y2J
Y2J원래의
2017-05-05 11:16:035964검색

분석

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

효과

WeChat 개발 중 연결 끊김 및 다시 로드에 대한 솔루션

페이지를 다시 로드하려면 '새로고침'을 클릭하세요

구현

프로젝트 작업 시 페이지 렌더링은 인터페이스 요청과 분리할 수 없기 때문에 네트워크 연결이 끊겼는지 확인하기 위해 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으로 돌아가서 네트워크 연결이 끊어졌는지 확인

[관련 추천]

1. 위챗 미니 프로그램 전체 소스코드

2. 위챗 미니 프로그램 데모

위 내용은 WeChat 개발 중 연결 끊김 및 다시 로드에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.