1.小程序运行机制
1.小程序启动可以分为两种情况,一种是冷启动,一种是热启动
1.冷启动:如果用户首次打开,或小程序销毁后被用户再次打开,此时小程序需要重新加载启动
2.热启动:如果用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时小程序并未被销毁,只是从后台状态进入前台状态
2.前台 和 后台状态
1.小程序启动后,界面被展示给用户,此时小程序处于「前台」状态。
2.当用户「关闭」小程序时,小程序并没有真正被关闭,而是进入了「后台」状态,当用户再次进入微信并打开小程序,小程序又会重新进入「前台」状态
3.挂起:小程序进入「后台」状态一段时间后(5 秒),微信停止小程序JS 线程执行,小程序进入「挂起」状态当开发者使用了后台播放音乐、后台地理位置等能力时,小程序可以在后台持续运行,不会进入到挂起状态
4.销毁:如果用户很久没有使用小程序,或者系统资源紧张,小程序会被销毁,即完全终止运行。当小程序进入后台并被「挂起」后,如果很长时间(目前是 30 分钟)都未再次进入前台,小程序会被销毁当小程序占用系统资源过高,可能会被系统销毁或被微信客户端主动回收。
2.小程序更新机制
1.在访问小程序时,微信会将小程序代码包缓存到本地。
2.开发者在发布了新的小程序版本以后,微信客户端会检査本地缓存的小程序有没有新版本,并进行小程序代码包的更新
3.小程序的更新机制有两种:启动时同步更新 和 启动时异步更新
4.启动时同步更新:微信运行时,会定期检査最近使用的小程序是否有更新。如果有更新,下次小程序启动时会同步进行更新,更新到最新版本后再打开小程序。如果 用户长时间未使用小程序时,会强制同步检查版本更新
5.启动时异步更新:在启动前没有发现更新,小程序每次 冷启动 时,都会异步检査是否有更新版本。如果发现有新版本,将会异步下载新版本的代码包,将新版本的小程序在下一次冷启动进行使用,当前访问使用的依然是本地的旧版本代码
6.在启动时异步更新的情况下,如果开发者希望立刻进行版本更新,可以使用 wx.getUpdateManager AP!进行处理。在有新版本时提示用户重启小程序更新新版本,
3.小程序生命周期介绍
1.应用生命周期是指应用程序进程从创建到消亡的整个过程
2.小程序的生命周期指的是 小程序从启动到销毁的整个过程
3.一个小程序完整的生命周期由 应用生命周期、页面生命周期 和 组件生命周期 三部分来组成
4.小程序生命周期伴随着一些函数,这些函数由小程序框架本身提供,被称为生命周期函数,生命周期函数会按照顺序依次自动触发调用。帮助程序员在特定的时机执行特定的操作,辅助程序员完成一些比较复杂的逻辑
4.应用生命周期
1.应用生命周期通常是指一个小程序从 启动 → 运行 一 销毁的整个过程
2.应用生命周期伴随着一些函数,我们称为 应用生命周期函数,应用生命周期函数需要 在 app.$s 文件的 ApP() 方法中进行定义,App()方法必须在 app.js 中进行调用,主要用来注册小程序。
3.应用生命周期函数由 onLaunch、onShow、onHide 三个函数组成
4.启动小程序 -> onLaunch(小程序初始化) -> onShow(小程序启动或切前台) <--> onHide(小程序切后台)
5.从小程序生命周期的角度来看,我们一般讲的「启动」专指冷启动,热启动一般被称为后台切前台。
5.页面生命周期
1.页面生命周期就是指小程序页面从 加载 → 运行 一 销毁的整个过程
2.页面生命周期函数需要在 Page()方法进行定义
3.访问页面 -> onLoad(监听页面加载) -> onShow(监听页面展示)( <--> onHide(监听页面隐藏)) -> onReady(监听初次渲染完成) -> onUnload(监听页面卸载)
6.生命周期两个细节
1.tabBar 页面之间相互切换,页面不会被销毁
2.点击左上角,返回上一个页面,会销毁当前页面