智能小程序新增Page.onInit功能,有效提升性能
为进一步帮助您提升小程序性能,缩短小程序页面渲染时间,智能小程序上线了一个新的生命周期 Page.onInit,您可在3.160.12 及以上的基础库版本中使用。
有效提升性能
以百度知道小程序为例,使用 Page.onInit
进行优化后,上屏时长约提升了 210ms
。
以下是百度知道、百度百科和宝宝知道使用Page.onInit
后的收益:
小程序 | 收益(单位 ms) |
---|---|
百度知道 | 210 |
百度百科 | 100 |
宝宝知道 | 150 |
什么是Page.onInit
Page.onInit
是百度智能小程序提供一种页面级别的生命周期。该生命周期函数执行时机远早于页面中的其他生命周期。
如果您在Page.onInit
中去发起网络请求,会提前获取页面数据。因此会缩短页面的渲染时间,极大提升小程序的用户体验。
如果您对小程序启动原理感兴趣,可参考下图小程序的启动流程,Page.onInit
是在收集initData
发送setInitData
后立即执行。由此可见,页面主数据的请求放在 onInit
中,将快于页面的其他生命周期。 如果您想了解Page.onInit
的细节原理,可参考下图,小程序是在 setInitData
之后立即执行Page.onInit
。
如果把主数据请求从 Page.onLoad
转移到 Page.onInit
中,将极大提升小程序的页面加载性能。
开发者可以在onInit
中向服务器请求数据,并执行setData
。图中展示了setData
的两种时机,同时应注意:
- 如果
setData
发出的时机早于渲染线程的 FCP,那么在onLoad
中将能获取到本次setData
的视图信息。 - 如果
setData
晚于 FCP,那么onLoad
中将获取不到本次setData
的视图信息。
使用建议
关于Page.onInit
的接口文档和使用说明,请阅读官方文档onInit(Object query)。
此处列举一些onInit
的使用限制和建议:
- 不能进行任何依赖视图层的操作,包括且不限于:
selectComponent
、selectAllComponents
、swan.createSelectorQuery
、swan.createMapContext
、swan.createCameraContext
、swan.createCanvasContext
等; - 由于并非所有版本的基础库都支持此生命周期,开发者可以参考官方文档中的代码片段,增加兼容逻辑;
- 如果您的小程序在逻辑线程初始化阶段存在较大瓶颈,那么使用
Page.onInit
可能不会有明显效果。建议从减少动态库和插件的使用、减少App.onLaunch
耗时等角度进行优化。
验证方式
您有两种方式验证Page.onInit
的相关功能:
- 真机验证:使用 11.20 及以上版本的百度 APP 。
- 开发者工具:需安装 3.8.0 及以上稳定版或rc版的开发者工具,并将基础库版本设置为3.160.12以上,下载地址.
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一文全览两会信息技术提案
2020全国两会已拉开帷幕,各种声音和思想相互碰撞、交相生辉。互联网/IT行业代表们提交的两会提案有哪些?信息技术领域代表在两会关心的热点问题是什么?本文已经帮你汇总好了,大家一睹为快。 今年两会信息技术热词:“新基建”、“两新一重”、“新型基础设施”。 今年政府工作报告中所提到的有关信息技术的信息: 推动制造业升级和新兴产业发展。大幅增加制造业中长期贷款。发展工业互联网,推进智能制造。电商网购、在线服务等新业态在抗疫中发挥了重要作用,要继续出台支持政策,全面推进“互联网+”,打造数字经济新优势。 提高科技创新支撑能力。稳定支持基础研究和应用基础研究,引导企业增加研发投入。加快建设国家实验室,重组国家重点实验室体系,发展社会研发机构。深化国际科技合作。加强知识产权保护。实行重点项目攻关“揭榜挂帅”,谁能干就让谁干。 深入推进大众创业万众创新。发展创业投资,增加创业担保贷款。深化新一轮全面创新改革试验,新建一批双创示范基地,坚持包容审慎监管,发展平台经济、共享经济,更大激发社会创造力。 重点支持既促消费惠民生又调结构增后劲的“两新一重”建设,主要是:加强新型基础设施建设,发展新一代信息网...
- 下一篇
从企业微信机器人到小爱同学,用 Serverless 实现生活智能化!
通过定时触发器,可以简单快速地定制一个企业微信机器人。我们可以用它来实现喝水、吃饭提醒等小功能,还能实现定时推送新闻、天气,甚至是监控告警的小功能。 使用企业微信机器人 在企业微信中,选择添加机器人: 之后,我们可以根据文档进行企业微信机器人的基础功能定制: 以下是用 curl 工具往群组推送文本消息的示例(注意要将 url 替换成机器人的 webhook 地址,content 必须是 utf8 编码): curl '企业微信机器人地址' -H 'Content-Type: application/json' -d ' { "msgtype": "text", "text": { "content": "hello world" } }' 通过 Python 语言实现: url = "" data = { "msgtype": "markdown", "markdown": { "content": "hello world", } } data = json.dumps(data).encode("utf-8") req_attr = urllib.request.Request(u...
相关文章
文章评论
共有0条评论来说两句吧...