微信小程序运行机制和生命周期

一. 运行机制

首先了解下小程序的运行机制,小程序从启动到最终被销毁,会经历很多不同的状态,小程序在不同状态下会有不同的表现。大致运行机制如下图。

小程序生命周期图

在这里插入图片描述

接下来我们是图中概念讲解,项目中也会经常遇到。

1)小程序的启动

通常来说,小程序启动可以分为两种情况,一种是冷启动,一种是热启动

  • 冷启动: 如果用户首次打开,或者小程序销毁后被用户再次打开,此时小程序需要重新加载启动,就是冷启动。
  • 热启动: 如果用户已经打开过某小程序,然后在一定时间内再次打开该小程序,加载速度比前者快不少,说明此时小程序并未被销毁,只是从后台状态进入前台状态,这个过程就是热启动。
    从小程序生命周期的角度看,我们一般讲的启动专指冷启动,热启动一般指后台切前台。
2)小程序前后台

小程序完成加载之后,会有两种状态,分别是前台状态后台状态

  • 小程序启动后,界面被展示给用户,此时小程序处于前台状态
  • 当用户「关闭」小程序时,小程序并没有真正被关闭,而是进入了「后台」状态,此时小程序还可以短暂运行一小段时间,但部分 API 的使用会受到限制。这里操作就是上图中的切后台
  • 切后台的方式包括但不限于以下几种:
  1. 点击右上角胶囊按钮离开小程序
  2. iOS 从屏幕左侧右滑离开小程序
  3. 安卓点击返回键离开小程序
  4. 小程序前台运行时直接把微信切后台(手势或 Home 键)
  5. 小程序前台运行时直接锁屏

小程序销毁前,当用户再次进入微信并打开小程序,小程序又会重新进入前台状态。也就是前面说的热启动

3)挂起状态

小程序进入后台状态一段时间后(目前是 5 秒),微信会停止小程序 JS 线程的执行,小程序进入挂起状态。此时小程序的内存状态会被保留,但开发者代码执行会停止,事件和接口回调会在小程序再次进入「前台」时触发。

小tip:
当开发者使用了后台音乐播放后台地理位置等能力时,小程序可以在「后台」持续运行,不会进入到「挂起」状态。

在项目中定义了一个倒计时事件,经验证,后台挂起时内存状态确实被保留,事件停止执行,当在小程序销毁之前,进入前台,就开始执行倒计时事件。

4)小程序销毁事件

如果用户很久没有使用小程序,或者系统资源紧张,小程序会被「销毁」,即完全终止运行。具体而言包括以下几种情形:

1 ) 当小程序进入后台并被「挂起」后,如果很长时间(目前是 30 分钟)都未再次进入前台,小程序会被销毁。

2 ) 当小程序占用系统资源过高,可能会被系统销毁或被微信客户端主动回收。比如在 iOS 上,当微信客户端在一定时间间隔内连续收到系统内存告警时,会根据一定的策略,主动销毁小程序,并提示用户 「运行内存不足,请重新打开该小程序」
3) 在微信客户端下拉最近访问的小程序里删除,也会从内存里销毁。

二. 关于小程序生命周期

  1. 生命周期分为 程序页面 两部分,对于程序,我们冷启动小程序时,会触发onLaunch方法,当我们的小程序初始化完成后,便会触发onShow方法,页面加载并显示,此时触发页面的onLoadonShow方法,成功显示页面。
  2. 首次显示页面,还会触发onReady方法,对页面元素进行渲染,注意该方法,一个页面只会调用一次。
  3. 当小程序切入后台时,小程序会先触发页面的onHide方法,将页面隐藏,再触发 程序的onHide方法。
  4. 当小程序从后台切前台时,先触发程序onShow,再触发页面的onShow方法,将页面显示。

微信小程序运行机制官方文档
【微信小程序】运行机制和更新机制

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁锤妹妹@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值