微信小程序的优化技巧是什么?怎样提高小程序加载速度?
虽然小程序功能已经愈发完善,但是还是有很多用户反映应该要将微信小程序再优化一些。微信小程序的优化技巧是什么呢?小编觉得最重要的技巧就是提高小程序页面的加载速度,以下是相关资料:
在如今越来越多的人信赖并使用小程序的情况下,怎样提高页面加载速度让用户的使用体验更好呢?小编在这里将问题具体化——也就是将用户点击链接到打开新的小程序页面的时间缩短。
从页面响应用户点击行为,开始跳转小程序,到新页面onload事件触发,存在一个延迟,这个延迟大概在100-300ms之间(安卓响应比ios慢些)。
这个延迟说短不短,我们可以利用这段时间,预先发起新页面所需要的网络请求。这样一来,就节省了100-300ms(或者一个网络请求的时间)。
知道有这个gap后,代码如何实现呢?
说白了,就是实现一个在A页面预加载B页面数据的功能。但而这种跨页面的调用,很容易把逻辑搞复杂,将不同页面的逻辑耦合在一起。所以,我们希望将预加载的逻辑隐藏于无形中,不增加任何的页面间耦合,以及开发复杂度。
下面以腾讯视频小程序为例,讲解下技术实现。
小程序首页:
当用户点击海报图后,会执行以下代码(就一行):
接下来程序会加载播放页:
播放页主要代码:
可以看到,不管是外部页面的调用还是实际逻辑的实现都非常简洁。在第二个页面中,我们扩展了Page的生命周期函数,增加了onNavigate方法。该方法在页面即将被创建但还没开始创建的时候执行。
熟悉小程序开发流程的开发者就会疑惑,首页点击的时候对象都不存在,也就是说根本没有创建播放页面,那要怎么去访问具体内容呢?
这里就要说下微信的页面机制。
在进入小程序时,会把所有调用Page()方法的object存在一个队列里(如下图)。每次页面访问的时候,微信会重新创建一个新的对象实例(实际上就是深拷贝)。
也就是说,在A页面在执行点击响应事件的时候,B页面的实例还没创建,这时候调用的onNavigate方法,实际上是Page对象的原型(小程序启动时候创建的那个)。
而接下来马上要被创建的B页面,又是另外一个object。所以,在onNavigate和onLoad方法中,this指针指的不是同一个对象,不能把临时数据存储在当前object身上。因此我们封装了一对全局的缓存方法,put()和 take()。
为了通用*,Page上用到的公共的方法,比如route、 put、take都定义在了一个Page的基类里面。基类还同时保存了所有页面的list,这样就可以做到根据页面名调用具体页面的onNavigate方法。当然,并不是每个页面都需要实现onNavigate方法,对于没有定义onNavigate方法的, route函数会跳过预加载环节,直接跳转页面。所以对于开发者来说,不需要关心别的页面实现了什么,对外看来完全透明。
微信小程序的优化技巧想必不用小编再强调了吧,能够将小程序页面的加载速度提升,这就是最好的优化了。参照文中的资料大家都快试试吧,应该会获得不一样的体验。更多相关资料请关注微信小程序商店。
微信小程序搜索优化怎么操作?
常用的微信小程序优化方案、优化心得
微信小程序js脚本中的函数怎么优化?