我们的业务场景有很多的动画,然后每一次在动画播放之前都会预加载动画中使用到的图片,但是用弱网访问的时候会发现图片总是会先空白后再加载出来,这个时候就很疑惑,为什么没有立即加载出来呢,明明已经用了预加载的功能。
然后问了一下AI,可能是因为图片需要解码需要一定的时间,然后就在原本的预加载图片的函数中加入了图片的解码函数decode,但是用手机弱网访问依然还是不太行。后来通过抓包才发现所有动画中使用到的图片都加载了两次,预加载了一次,在动画播放的时候重新加载了一次。
然后就去查看原因,发现动画播放的时候图片链接后面追加了一部分压缩链接,因为我们会使用到公用的图片压缩组件,内部会对图片链接二次处理,在原本图片的链接后面追加webp或者压缩比例等参数导致客户端认为前后两次图片链接不一样。
问题找到了,那么解决方案就是不使用图片组件的压缩功能,这样虽然可以使用预加载的效果,但是对于一些体积稍大的图片也会带来一定的带宽消耗和加载时间要等更长,所以这个很难去区别处理,目前先针对动画中使用到图片先不使用默认的压缩功能,一律先预加载成功之后再播放动画。
1565

被折叠的 条评论
为什么被折叠?



