小程序在首次启动前,微信会在小程序启动前为小程序准备好通用的运行环境,如运行中的线程和一些基础库的初始化。在进入启动状态时,微信需要完成几项工作:下载小程序代码包、加载小程序代码包、初始化(渲染)小程序首页。所以,我们可以从加载、渲染两个维度去提高应用速度:
加载
1. 控制小程序包的大小
- 勾选开发者工具中“上传代码时,压缩代码”选项
-
及时清理无用的代码和资源文件
-
减少资源包中的图片等资源的数量和大小
2. 采用分包加载
将用户访问率高的页面放在主包里,访问率低的页面放在子包里,按需加载;当用户点击到子包页面时,由于也会有代码包的下载,所有会有卡顿的情况出现,那么我们子包可以采用预加载的技术,不需要等到用户点击到子包页面后再下载子包。
渲染
1. 预加载网络请求的数据
描述现象:
如果小程序打开新页面时需要通过网络请求从接口中获取所用数据,在请求完之前页面都会因为没有数据而呈现一片空白。
解决方案:(方案分为三种,最后一种为预加载方式)
1)先使用从缓存中取出上一次数据,等到请求结束后再使用请求得到的数据。
2)在加载时显示骨架屏(骨架屏:在页面尚未加载前展示出来的大致结构)。
3)前一个页面预加载下一个页面的数据,达到秒开的效果。
预加载设计思路:
1)实现预加载能力的关键是能够调用其他页面的函数,需要获取其他页面对象。但是部分还没有加载出来,getCurrentPage 方法也获取不到,因此需要把预加载页面的 PageOption 给保存起来。
2)那些没有被创建的页面并没有 setData 方法,需要模拟一个 setData 方法,把获取到的数据暂存起来,在 onLoad阶段再调用 setData 呈现到视图上。
3)页面应当可以主动被预加载,但是在没有被预加载的时候也应该能够正常打开。
2. 减少默认 data 的大小
页面打开一个新页面时微信会深拷贝一个 Page 对象,因此,应该尽量减少默认 data 的大小,以及减少对象内的自定义属性。文章来源:https://www.toymoban.com/news/detail-498673.html
虽然小程序足够小巧,但启动速度还是有 2-3s,无法达到秒开的效果。单个页面的初始化只需要 1-2ms,也许大部分时间消耗在了微信跟服务器端通信的过程中。文章来源地址https://www.toymoban.com/news/detail-498673.html
到了这里,关于微信小程序篇3 谈谈如何提高小程序的应用速度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!