一. 运行机制
首先了解下小程序的运行机制,小程序从启动到最终被销毁,会经历很多不同的状态,小程序在不同状态下会有不同的表现。大致运行机制如下图。
小程序生命周期图
接下来我们是图中概念讲解,项目中也会经常遇到。
1)小程序的启动
通常来说,小程序启动可以分为两种情况,一种是冷启动
,一种是热启动
。
- 冷启动: 如果用户首次打开,或者小程序销毁后被用户再次打开,此时小程序需要重新加载启动,就是冷启动。
-
热启动: 如果用户已经打开过某小程序,然后在一定时间内再次打开该小程序,加载速度比前者快不少,说明此时小程序并未被销毁,只是从后台状态进入前台状态,这个过程就是热启动。
从小程序生命周期的角度看,我们一般讲的启动
专指冷启动,热启动一般指后台切前台。
2)小程序前后台
小程序完成加载之后,会有两种状态,分别是前台状态
和 后台状态
。
- 小程序启动后,界面被展示给用户,此时小程序处于前台状态。
- 当用户「关闭」小程序时,小程序并没有真正被关闭,而是进入了「后台」状态,此时小程序还可以短暂运行一小段时间,但部分 API 的使用会受到限制。这里操作就是上图中的切后台。
- 切后台的方式包括但不限于以下几种:
- 点击右上角胶囊按钮离开小程序
- iOS 从屏幕左侧右滑离开小程序
- 安卓点击返回键离开小程序
- 小程序前台运行时直接把微信切后台(手势或 Home 键)
- 小程序前台运行时直接锁屏
小程序销毁前,当用户再次进入微信并打开小程序,小程序又会重新进入前台状态。也就是前面说的热启动。
3)挂起状态
小程序进入后台状态
一段时间后(目前是 5 秒),微信会停止小程序 JS 线程的执行,小程序进入挂起状态
。此时小程序的内存状态会被保留,但开发者代码执行会停止,事件和接口回调会在小程序再次进入「前台」时触发。
小tip:
当开发者使用了后台音乐播放
、后台地理位置
等能力时,小程序可以在「后台」持续运行,不会进入到「挂起」状态。
在项目中定义了一个倒计时事件,经验证,后台挂起时内存状态确实被保留,事件停止执行,当在小程序销毁之前,进入前台,就开始执行倒计时事件。
4)小程序销毁事件
如果用户很久没有使用小程序,或者系统资源紧张,小程序会被「销毁」,即完全终止运行。具体而言包括以下几种情形:
1 ) 当小程序进入后台并被「挂起」后,如果很长时间
(目前是 30 分钟)
都未再次进入前台,小程序会被销毁。2 ) 当小程序
占用系统资源过高
,可能会被系统销毁或被微信客户端主动回收。比如在 iOS 上,当微信客户端在一定时间间隔内连续收到系统内存告警时,会根据一定的策略,主动销毁小程序,并提示用户 「运行内存不足,请重新打开该小程序」。
3) 在微信客户端下拉最近访问的小程序里删除
,也会从内存里销毁。文章来源:https://www.toymoban.com/news/detail-535433.html
二. 关于小程序生命周期
- 生命周期分为
程序
和页面
两部分,对于程序,我们冷启动小程序时,会触发onLaunch
方法,当我们的小程序初始化完成后,便会触发onShow
方法,页面加载并显示,此时触发页面的onLoad
和onShow
方法,成功显示页面。 - 首次显示页面,还会触发
onReady
方法,对页面元素进行渲染,注意该方法,一个页面只会调用一次。 - 当小程序切入后台时,小程序会先触发页面的
onHide
方法,将页面隐藏,再触发 程序的onHide
方法。 - 当小程序从后台切前台时,先触发程序
onShow
,再触发页面的onShow
方法,将页面显示。
微信小程序运行机制官方文档
【微信小程序】运行机制和更新机制文章来源地址https://www.toymoban.com/news/detail-535433.html
到了这里,关于微信小程序运行机制和生命周期的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!