收藏
回答

小程序首次加载外部图片时间比较长

问题模块
API和组件

我在小程序和后台埋了点,统计各个操作所花费的时间。统计发现,费时前两名的操作分别是:

1、用户首次授权后获取用户资料,大概两三百毫秒

2、用户首次/完全关掉后首次打开小程序后,加载第一张上百K的外部图片,时间波动比较大,大致在700毫秒(0.7秒)到10000毫秒(10秒)之间。


其中加载图片这个延时完全无法接受,请问微信服务器端处理这个逻辑是不是有什么特别的操作,比如说DNS缓存或者黄图检测什么的?

官方和开发者,双方的逻辑有没有改良的余地?

我开始因为是外部图床的问题,后面换了腾讯云的图床,有一定程度的改善但仍然很严重。

最后一次编辑于  2017-06-20  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

7 个回答

  • maq
    maq
    2017-06-20

    话说,小程序访问外部图片难道不是直接从服务器上抓,还要经过微信服务器过滤一道吗?

    2017-06-20
    赞同
    回复
  • maq
    maq
    2017-06-20

    另外,只有“第一张”时间比较长,后续的大图片会好一些,是吗?这样的话,貌似 DNS 解析的问题哦。

    2017-06-20
    赞同
    回复
  • 许臻蓁她爹
    许臻蓁她爹
    2017-06-20

    @maq 不知道经没经过微信服务器,测试的情况是浏览器直接打开图片飞快,在小程序上就慢多了

    2017-06-20
    赞同
    回复
  • maq
    maq
    2017-06-20

    手机如果跟桌面电脑在同一个局域网的话,一般来说很有可能用的是相同的 DNS,域名解析方面不应该有太大的差异。不过小程序的运行环境毕竟跟原生的浏览器不同,而且有可能域名会通过微信服务器进行过滤(某种白名单或者黑名单),所以还是怀疑问题出在域名环节。


    不妨试验一下,采用预加载的方式,比如在小程序刚启动的时候,还没有到真正需要显示大图片的地方,先埋一个相同域名的图片链接,看看能否达到“加速”的效果。

    2017-06-20
    赞同
    回复
  • 许臻蓁她爹
    许臻蓁她爹
    2017-06-20

    @maq 试过了,在相同和不同的网络情况下,使用浏览器或者微信直接访问小图片(100k左右)速度飞快,但在小程序里面加载同一张图片,就要700毫秒到几秒钟那么久。我们的小程序首页就得显示这张小图片,所以没有什么可预加载的了。

    2017-06-20
    赞同
    回复
  • maq
    maq
    2017-06-21

    按照你所描述的现象,如果没有观察失误的话(只有第一次访问外链图片会比较慢,后续访问同一域名的其它图片并不慢),我能想到的就只可能是小程序对所访问图片的链接域名要事先做一个检查处理,耽误了时间。虽然我想不明白小程序有什么理由要这么做。


    实在不行,为了改善用户体验,就把这张图片打包到小程序里吧……

    2017-06-21
    赞同
    回复
  • 周灿桢
    周灿桢
    2018-09-18

    想问一下楼主解决问题了么,现在遇到一样的第一次图片下载速度慢问题

    2018-09-18
    赞同
    回复