移动端无限加载的性能优化

移动端无限加载是一种很常见的需求,但是随着数据量的增加,浏览器(软件)所需要的资源也越来越多.而系统分配给每一个程序的资源也是有限的.这时就会出现卡顿,影响用户体验,下面我们就一起来探讨解决这个问题.

最近有一个模仿抖音的需求,要求像抖音一样上下左右滑动切换,只不过我们将视频换成了图片,话不多说,看效果:

问题

1.加载速度慢

2.随着数据的增加,后面变得及其卡顿

怎么解决

一、 加载速度慢

经分析发现,加载速度慢有以下两个原因:

1.图片资源加载慢

2.图片虚化背景在图片加载后,在通过 css3 滤镜实现,增加了 gpu 的计算量,导致加载速度慢

后来将图片上传到阿里云 oss 静态资源服务器,大大加快了图片加载的速度,但是整个加载过长依然慢,可以得出是由于 gpu 计算量太大所导致,然后使用 canvas 滤镜来绘制虚化背景,经测试变得更慢了,猜想是 canvas 进一步增加了计算量.后来发现阿里云 oss 自带高斯模糊,只需要在图片路径后添加下面的参数即可.

1
?x-oss-process=style/blur50-50

二、随着数据的增加,后面变得及其卡顿

这个问题明显是图片太多,且每一个左右滑动的 slider 都是一个独立的对象,过多的左右 slider 占用了太多的内存.所以我们直接隐藏多余的左右 slider,让页面最多只显示 3 个所有滑动的 slider,这样处理后,动画的流程性得到极大的提升.

上面这个 demo 是从项目中抽出来的部分东西,所以还存在一些问题,但也基本能够解决无限加载卡顿的问题了

代码点我

[越努力,越幸运!]