现在做小程序的人越来越多,但很多开发者把小程序上线之后就不管了,结果就是用户打开慢、页面卡顿、用一次就走。其实小程序优化并不神秘,抓住几个关键点,效果会非常明显。下面就从实际操作的角度,聊聊小程序优化到底该怎么做。
一、把启动速度提上去
用户点开小程序的前三秒最关键,如果加载超过三秒,流失率会大幅上升。提升启动速度可以从这几个方面入手:第一,减少启动时需要请求的数据量,把非核心的数据放到用户进入之后再加载;第二,开启数据预拉取,让用户还没点开小程序,数据就已经提前准备好;第三,用好缓存,把不常变化的内容存在本地,用户第二次打开时直接显示缓存内容,后台再悄悄更新。
二、控制代码包体积
小程序主包一般限制在两兆以内,体积越大,下载时间越长。很多人把图片、音频这些大文件直接打包进去,这是很常见的错误。正确的做法是:静态资源全部放到服务器或者云存储上,通过网络加载;代码做好精简,删掉没用到的文件和依赖;超过一定规模的小程序一定要用分包加载,把主包控制在最小范围,用户用到哪个功能再加载对应的分包,首屏速度会快很多。
三、优化setData减少卡顿
用过微信小程序的开发者都知道,setData是性能损耗的大头。每次调用setData,数据都要从逻辑层传到渲染层,调用太频繁、单次传的数据太大,页面就会明显卡顿。优化方法很简单:减少调用次数,把多次的数据合并成一次传;只传变化的数据,不要每次都把整个对象传过去;不要把不参与页面渲染的数据也放进data里,后台数据放在普通变量里就行。
四、图片和资源的加载优化
图片往往占了一个小程序加载流量的七八成。首先要选对格式,一般的展示图用webp格式能比jpg小不少;其次要控制尺寸,列表里的缩略图就不要加载原图,按显示大小请求对应尺寸的图;再次开启懒加载,用户滚动到哪里,图片才加载到哪里,首屏压力会小很多。此外,记得给图片设置宽高占位,避免加载时页面跳动,体验会好很多。
五、页面渲染和交互体验优化
除了速度快,用起来顺滑也很重要。长列表一定要用虚拟列表或者分页加载,几千条数据一次性渲染出来,手机再好也会卡。动画尽量用css动画代替js操作样式,减少页面重排。 skeleton屏骨架屏是个好东西,数据还没回来之前先显示灰色占位块,用户会觉得页面响应很快,而不是白屏干等。另外,点击按钮后要给及时反馈,比如按钮状态变化或者loading提示,别让用户不知道自己点没点成功。
六、别忽略搜索和分享的优化
小程序的流量一部分来自搜索和分享,这部分也有优化空间。页面要设置好标题和关键词,让小程序内容能被平台收录,用户搜相关词的时候能找到你。分享卡片要精心设计,标题写清楚价值点,配图清晰吸引人,用户看到分享卡片愿不愿意点进来,很大程度上决定了裂变效果。
七、建立数据监控持续迭代
优化不是一次性的事,上线之后要持续看数据。重点关注这几个指标:启动耗时、页面打开耗时、各页面的跳出率和留存率。哪个页面跳出率高,就去排查是加载慢还是内容不行。可以接入官方的性能监控工具,也可以自己埋点,发现问题及时改。优化的过程就是一个不断测量、不断改进的循环。
总结
小程序优化说白了就是两件事:让用户更快打开,让用户更愿意留下来。启动速度、包体积、setData、图片加载这些技术层面的优化决定了快不快;页面体验、搜索分享、数据迭代这些运营层面的优化决定了好不好用。把这些点一个一个落实下去,小程序的用户体验和留存数据都会有实实在在的提升。别等到用户流失了才想起来优化,从开发阶段就把这些习惯带上,后面会省很多力气。
