背景:
随着业务的增加,我们服务器需要计算大量的用户数据,导致用户跟客服反应页面不能正常展示。反馈给开发后,我们一看,是服务器异常的错误。So,产品想看下我们到底有多少用户页面不能正常展示?
方案:
后端人员直接在阿里云后台去查哪些接口异常
前端做一个服务器报错页,这样产品在小程序后台能看到这个页面的PV,UV
技术方案
因为业务庞大,所以我们不可能区在每个页面加上重新加载的逻辑。所以初步考虑使用全局重新加载。
需要解决的问题都有哪些?
首先我们要有网络请求失败的全局控制权(要不然就需要在每个页面处理失败的情况)
需要定义好网络失败后是如何跳转到重载页(R)的(用wx.redirectTo,wx.reLaunch还是其他)
点击错误页的“重新加载”,如何返回或跳转到出错页(E)(用wx.redirectTo,wx.reLaunch还是其他)
跳转到出错页后,如何重新加载数据(把所有请求都放在Page.onShow()里面?)
那如果从出错页的上个界面(P)传到出错页(E)options,那重载页(R)又将如何处理?
点击重新加载跟返回,我们希望效果效果一样,又该如何操作?
实践的方式如下
第一个问题: 比较好解决,我们基于wx.request已经封装了为fetch(如果还在用wx.request的项目可以考虑封装下,好处多多)。基于fetch我们可以用res.statusCode来判断服务器是否出错。
第二个问题: 暂且先不说具体的跳转方式是怎样的,就跳转的url这个怎么