微信小程序是一种借助互联网获取内容的应用,而非单机应用,对互联网通信的依赖很深。因此,微信小程序在开发过程中最重要的一环就是处理前后台通信。
在基本应用中,常常会遇到,请求失败,或者操作数错误的情况;请求失败多数情况下是前后台通信不畅造成的,例如,不稳定的蜂窝数据环境下或者较为拥堵的宽带网络下,通常,一个前端 request 方法应该具备会处理这些问题能力。
- 不稳定网络环境造成的通信失败 - 再次请求,通常会进行 3 次请求
- 不稳定网络环境,造成网络通信迟缓 - 超过 3 秒钟后台没有返回数据,则弹出等待请求提示(通常为loading)直到返回结果或者服务器超时为止
- 不稳定环境造成通信超时 - 再次请求一次,如果不成功,则返回失败
- 服务器异常
- 可忽略行为 - 前台忽略改行为继续流程
- 服务器一时繁忙 - 前台再次按照原有参数进行再次请求
- 服务器操作数异常 - 前台再次采集操作数,重新发送请求
- 服务器错误 - 不可继续运行的错误,前台继续执行会造成 ‘crash’ ,并且当前操作流程已经出现了中断,返回首页或者中端当前操作流程,返回到起始位置
微信提供了基础 request 方法,该方法的使用方式和大多数框架提供的 ajax 方式类似
https://developers.weixin.qq.com/miniprogram/dev/api/network-request.html#wxrequestobject
对比其与 jquery 方法他们的可选参数
$.ajax({
url, // 请求路径,微信中名为 path
data, // 请求参数,微信中同名,参数可以是 object / string / arrayBuffer
type, // post | get,微信中名为 method
complete,// xhr, status 请求完成函数,微信中同名
success, // 当请求成功,参数 result, status, xhr;微信中具有同名函数,使用 res 对象封装 result,status,xhr等信息,具体为 { data, status