背景
近来小程序监控到很多{"errno":600001,"errMsg":"request:fail errcode:10007 cronet_error_code:0 error_msg:"}这样的错误码,社区提问了很久也没得到解答 developers.weixin.qq.com/community/d…
只知道600001大概是跟网络有关系的错误码,但是10007这个是什么呢?
官方不回复,干等也不是办法……
发现了CacheManager缓存管理器这个功能,兴许可以一用
CacheManager是什么
就是数据缓存,监测到网络不好的时候,会返回上一次请求的结果
网络正常时:
- 缓存符合规则的网络请求
- 缓存部分微信 API 调用
网络异常时:
- 对已缓存的网络请求使用缓存返回
- 对已缓存的微信 API 的调用使用缓存返回
如何接入
看文档即可 developers.weixin.qq.com/miniprogram…
注意点
一、
缓存管理器中的缓存不会占用 storage 空间,但是有大小限制(具体限制多大没说明,storage是10M,估计差不多也这样吧),所以非必要的就不用缓存了
二、
origin填接口的域名,addRules填需要被缓存的接口名 如上,则接口weixin.qq.com/cgi/home 和 weixin.qq.com/cgi/detail/… 会被缓存
三、
这两个状态,在开发工具怎么模拟都不会触发
可以用手机,第一次正常进入小程序,请求数据,然后退出小程序,断开网络,再进入小程序,就会发现没网络也有数据出来,就是使用了缓存数据
总结
随着小程序应用场景越来越丰富,网络调优也是小程序性能体验的重要部分,对于不会经常变的接口,弱网时用缓存管理器返回数据的办法,可以改善一部分体验。而且,缓存管理器可以不修改小程序主要逻辑,快速接入。 算是个有用的功能吧