小程序setdata优化_小程序页面加载性能优化

本文分享了小程序页面加载性能优化的研究,包括请求前置、首屏直出和数据缓存等策略。通过这些方法,可以显著减少页面加载时间和提高用户体验,例如通过提前请求数据、利用现有数据渲染首屏,以及利用本地缓存加速数据获取。
摘要由CSDN通过智能技术生成

6月份有幸被前端早读课邀请到厦门大前端技术沙龙,作了小程序页面加载性能优化的分享。从现场反响来看,大家对性能优化的关注度都很高,还是很开心的。

本文是分享的文字版,总结了我们上半年对榛果小程序性能优化的研究和一些实践,希望各位读者能够对小程序的性能优化有个系统的了解。

小程序出现的问题及优化方案

大家在开发和使用小程序的时候,是否有遇到这两个问题?

问题一,页面的加载时间过长:当页面在跳转时,有较长的白屏时间或“加载中”的状态;

问题二,页面失去响应:页面在滑动过程中出现卡顿,或按钮点击后失去响应;

本文将围绕这两个问题的解决思路进行展开。

问题一 加载时间过长

新页面在加载过程中除了要创建页面实例初始化等工作,更多时间还花在页面数据的请求上。所以针对数据请求,我们提出了三种优化思路:请求前置:提前请求数据,缩短页面加载时间;

首屏直出:请求前,利用已有数据,跳过“页面加载”的过程;

数据缓存:请求后,缓存接口请求的数据;

优化思路一 请求前置

我们一般会在新页面加载完成的onLoad事件中请求数据,那我们可不可以考虑提前请求的时机?在回答这个问题前,我们需要先了解一下小程序的运行机制和生命周期。

小程序MINA框架

小程序整体框架分为三个层,视图层、逻辑层和系统层。视图层包含了小程序各个页面的WXML、WXS和WXSS。逻辑层则运行在JavaScript执行引擎中,包含处理数据逻辑和封装客户端提供的API。系统层则提供微信客户端原生的能力。除了微信原生功能支持、网络请求等,还提供视图层和逻辑层之间数据传输与事件通知的功能。

逻辑层将数据变化通知给视图层,触发页面更新;视图层把触发的事件通知给逻辑层,进行业务处理。可以看出,视图层的变化实际上是由数据驱动的,小程序将逻辑层的数据反应成视图,同时将视图层的事件发送给逻辑层,这中间需要系统层做中转传输。

根据小程序框架,我们了解视图渲染与逻辑执行是并行独立的线程,因此我们可以一边做页面过渡,一边向后端请求数据,这样并行做请求与渲染。那么,问题又来了,我们应该把数据请求触发点应该提前到那里呢?可以小程序页面加载的生命周期中找到一些思路。

生命周期

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值