小程序网络太差?试试CacheManager

149 阅读2分钟

背景

近来小程序监控到很多{"errno":600001,"errMsg":"request:fail errcode:10007 cronet_error_code:0 error_msg:"}这样的错误码,社区提问了很久也没得到解答 developers.weixin.qq.com/community/d…

只知道600001大概是跟网络有关系的错误码,但是10007这个是什么呢?

官方不回复,干等也不是办法……

发现了CacheManager缓存管理器这个功能,兴许可以一用

CacheManager是什么

就是数据缓存,监测到网络不好的时候,会返回上一次请求的结果

网络正常时:

  1. 缓存符合规则的网络请求
  2. 缓存部分微信 API 调用

网络异常时:

  1. 对已缓存的网络请求使用缓存返回
  2. 对已缓存的微信 API 的调用使用缓存返回

如何接入

看文档即可 developers.weixin.qq.com/miniprogram…

注意点

一、

缓存管理器中的缓存不会占用 storage 空间,但是有大小限制(具体限制多大没说明,storage是10M,估计差不多也这样吧),所以非必要的就不用缓存了

二、

image.png

origin填接口的域名,addRules填需要被缓存的接口名 如上,则接口weixin.qq.com/cgi/homeweixin.qq.com/cgi/detail/… 会被缓存

三、

image.png

这两个状态,在开发工具怎么模拟都不会触发

image.png

可以用手机,第一次正常进入小程序,请求数据,然后退出小程序,断开网络,再进入小程序,就会发现没网络也有数据出来,就是使用了缓存数据

总结

随着小程序应用场景越来越丰富,网络调优也是小程序性能体验的重要部分,对于不会经常变的接口,弱网时用缓存管理器返回数据的办法,可以改善一部分体验。而且,缓存管理器可以不修改小程序主要逻辑,快速接入。 算是个有用的功能吧