微信小程序运行及更新机制

微信小程序运行及更新机制

  • 1、微信小程序运行机制
    • 1.1 前台和后台
    • 1.2 小程序启动:冷启动和热启动
    • 1.3 小程序销毁
  • 2、微信小程序更新机制
    • 2.1 启动时同步更新
        • 定期检查发现版本更新
        • 用户长时间未使用小程序
    • 2.2 启动时异步更新
        • 开发者手动触发更新
    • 2.3 小程序管理后台的相关设置
        • 优先使用本地版本设置
        • 小程序最低可用版本设置
  • 注意


1、微信小程序运行机制

  • 微信小程序运行机制

在这里插入图片描述

  • 官方文档描述的很详细,所以这里只介绍主要的相关概念。

1.1 前台和后台

  • 小程序启动后,界面被展示给用户,此时小程序处于前台状态。

  • 当用户点击右上角按钮关闭小程序,或者按了设备 Home 键离开微信时,小程序并没有完全终止运行,而是进入了后台状态,小程序还可以运行一小段时间。

  • 当用户再次进入微信或再次打开小程序,小程序又会从后台进入前台。但如果用户很久没有再进入小程序,或者系统资源紧张,小程序可能被销毁,即完全终止运行。

1.2 小程序启动:冷启动和热启动

  • 小程序启动可以分为两种情况,一种是冷启动,一种是热启动
  1. 冷启动:如果用户首次打开,或小程序销毁后被用户再次打开,此时小程序需要重新加载启动,即冷启动。
  2. 热启动:如果用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时小程序并未被销毁,只是从后台状态进入前台状态,这个过程就是热启动。

1.3 小程序销毁

  • 通常,只有当小程序进入后台一定时间,或者系统资源占用过高,才会被销毁。具体而言包括以下几种情形:
  1. 当小程序进入后台,可以维持一小段时间的运行状态,如果这段时间内都未进入前台,小程序会被销毁。
  2. 当小程序占用系统资源过高,可能会被系统销毁或被微信客户端主动回收。

2、微信小程序更新机制

  • 微信小程序更新机制

  • 开发者在管理后台发布新版本的小程序之后,微信客户端会有若干个时机去检查本地缓存的小程序有没有新版本,并进行小程序的代码包更新。但如果用户本地有小程序的历史版本,此时打开的可能还是旧版本。

2.1 启动时同步更新

  • 在以下情况下,小程序启动时会同步更新代码包。同步更新会阻塞小程序的启动流程,影响小程序的启动耗时。

  • 如果更新失败或超时,为了保障小程序的可用性,还是会使用本地版本打开。

定期检查发现版本更新

  • 微信运行时,会定期检查最近使用的小程序是否有更新。如果有更新,下次小程序启动时会同步进行更新,更新到最新版本后再打开小程序,尽可能保证用户能够尽快使用小程序的最新版本。

用户长时间未使用小程序

  • 用户长时间未使用小程序时,为保障小程序版本的实时性,会强制同步检查版本更新,更新到最新版本后再打开小程序。

  • 若用户处于弱网环境、下载最新版本失败等情况下,仍会启动本地的较低版本。

2.2 启动时异步更新

  • 即使启动前未发现更新,小程序每次冷启动时,都会异步检查是否有更新版本。如果发现有新版本,将会异步下载新版本的代码包。但当次启动仍会使用客户端本地的旧版本代码,即新版本的小程序需要等下一次冷启动才会使用。

开发者手动触发更新

  • 在启动时异步更新的情况下,如果开发者希望立刻进行版本更新,可以使用 wx.getUpdateManager API 进行处理。在有新版本时提示用户重启小程序更新新版本。
  • 官方版本:
const updateManager = wx.getUpdateManager()updateManager.onCheckForUpdate(function (res) {// 请求完新版本信息的回调console.log(res.hasUpdate)
})updateManager.onUpdateReady(function () {wx.showModal({title: '更新提示',content: '新版本已经准备好,是否重启应用?',success(res) {if (res.confirm) {// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启updateManager.applyUpdate()}}})
})updateManager.onUpdateFailed(function () {// 新版本下载失败
})
  • 实际使用版本:
//app.js
App({onLaunch() {this.update()},// 版本更新update() {const updateManager = wx.getUpdateManager()updateManager.onCheckForUpdate(function (res) {// 请求完新版本信息的回调if(res.hasUpdate) {// 新版本下载成功updateManager.onUpdateReady(function () {wx.showModal({title: '更新提示',content: '新版本已经准备好,请您重启应用,以确保正常使用。',success: function (res) {if (res.confirm) {// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启updateManager.applyUpdate()}}})})// 新版本下载失败updateManager.onUpdateFailed(function () {wx.showModal({title: '更新提示',content: '检测到了新版本,但是下载失败了~'})})}})}
})

2.3 小程序管理后台的相关设置

  • 小程序开发者可以通过在小程序管理后台进行设置,影响更新逻辑。

优先使用本地版本设置

  • 若开发者判断某些较新的小程序版本无需强制用户同步更新到最新版本,可以在小程序管理后台「设置」-「功能设置」-「优先使用本地版本设置」中进行设置,设置后若同步更新时检查本地版本不低于该版本,则优先使用本地版本,同时将会异步下载最新版本的代码包。

小程序最低可用版本设置

  • 若开发者判断某些较旧的小程序版本服务不再可用,可以在小程序管理后台 「设置」-「功能设置」-「小程序最低可用版本设置」中进行设置。设置后若同步更新时检查本地版本低于该版本,则无法打开,并继续尝试下载最新版本、若异步更新,则会在检查到更新后提示用户重启小程序更新新版本。

  • 操作步骤如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 最终小程序打开如下图所示
    在这里插入图片描述

注意

  1. 开发者在后台发布新版本之后,无法立刻影响到所有现网用户,但最差情况下,也在发布之后 24 小时之内覆盖绝大多数用户。
  2. 小程序管理后台的「优先使用本地版本设置」和「小程序最低可用版本设置」不会影响同步更新与异步更新的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/62747.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序之---使用微信开发者工具调试小程序 debug 失效 以及 console.log 无法输出

项目场景: 使用 HbuilderX 开发微信小程序,在调试的过程中,使用了 debug 以及 console.log ,在 H5 中输出测试都是可以的,但是运行到微信开发者工具之后, console.log 无法生效,在查阅相关解决办法之后,都没有解决 问题描述 在此之前有尝试过一些解决方案,如清除缓…

什么才是好的商业计划书呢?

不同行业的商业计划书有所不同,同一行业由于项目的差异,使得商业计划书也有所不同。什么才是好的商业计划书呢?一言以概之,能让投资者心服口服拿出钱的商业计划书就是好的商业计划书。虽然商业计划书的写法有多种,格式…

一份好的商业计划书该怎么写

一、商业计划书是创业者找VC/PE的敲门砖 •据统计投资人平均每天收到50-100份BP,而只有5-8份会受到重视 •投资人阅读每份商业计划书平均时间为3分44秒 •商业计划书平均长度19.2页,建议不超过20页 •商业计划书撰写建议使用PPT(节省投资人时…

商业计划书中该如何做产品介绍?

在商业计划书中,投资人关心的问题之一就是,风险企业的产品、技术或服务能否以及在多大程度上解决现实生活中的问题,或者,风险企业的服务及产品能否帮助顾客节约开支,增加收入。因此,产品介绍是商业计划书中…

扬帆优配|翻倍牛股“高台跳水”,一度跌停,啥情况

2月23日上午,A股商场窄幅震荡,上证指数上午收盘涨0.07%,煤炭、电力设备等板块领涨。 总的来看,A股商场上午整体体现安静,不过仍有个股大幅动摇,比如前期翻倍热门股汉王科技盘中“高台跳水”,一…

记一次post请求参数太长导致的400报错

背景:spring boot2.1.1 vue2.6.11 iview3.3.0 axios0.18.1 这个接口是接收前台图文编辑器的内容,插入数据库,当接收图文内容的字段过长时,就抛出400 后台代码: 前台请求: 报错信息: 网上…

post 参数过多导致url过长,请求413 HEAD FULL

1.问题描述 java用apache httpclient请求目标应用,目标应用使用jettyspringMvc提供服务,请求的参数使用RequestParam方式接收,故用aA&bB&cC把请求参数直接追加到url方式调用目标应用,当参数过多时候,发现服务起…

post 400 (Bad Request)异常怎么排查参数问题

问题描述: 用ajax请求时报post 400 (Bad Request)的异常,前台js参数JSON.stringify(data),后台controller 中RequestBody XX xx(javabean)接收参数。 通常发生400时,即使在后台方法上设置断点,但因400是参数由json转换成Javabean…

微信小程序获取手机号47001 data format error hint的完美解答(restTemplate发送post请求)

发现问题 这几天正在搞微信小程序获取手机号功能开发,发现发送post请求接口时候,接口返回如下错误: {"errcode": 47001,"errmsg": "data format error hint: [******] rid: ******" } post请求的url为&…

搭建个人专属的API中转站,解决本地OpenAI接口调用困扰

今天仅仅只是站在开发者学习交流的角度来介绍一下,我们在日常开发基于LLM的AI应用时遇到的各种瓶颈,毕竟开发出一个优质的应用,舒适的环境和体验还是比较重要的。话不多说,进入正题。 一、搭建OpenAI中转站 如何搭建个人专属的A…

哈佛医学院退出US News排名,此前已有耶鲁哈佛等顶尖法学院「退群」

詹士 发自 凹非寺量子位 | 公众号 QbitAI 哈佛医学院也宣布退出U.S. News排名了! 在最新发布的声明中,学院院长对外表示,他们将不再向评选机构USNWR提交数据,以支持他们“最佳医学院”的调研排名。 事实上,哈佛医学院在…

港联证券|科技股热度扩散 6G概念受追捧

昨日,科技股热度继续分散,6G概念股高开高走。截至收盘,Choice的6G概念指数全体大涨3.64%。A股方面,信科移动20%起伏涨停,股价创前史新高;本川智能上涨近15%,中兴通讯、创远信科、金信诺等涨超4%…

chatgpt赋能python:Python主窗口名字怎么修改?

Python主窗口名字怎么修改? Python是一种解释型的编程语言,广泛应用于Web开发、数据科学、人工智能等领域。在Python编写的GUI程序中,窗口名字是非常重要的一个元素,因为它可以直观地让用户知道当前的应用程序是什么。在这篇文章…

HTTP劫持是什么?如何防止网站被劫持呢?

HTTP劫持(HTTP hijacking)是一种网络攻击技术,攻击者通过各种手段截取用户的HTTP请求或响应,篡改其内容或重定向到恶意服务器,从而实施恶意活动。这种攻击可能导致用户信息泄露、身份盗窃、篡改网页内容或植入恶意代码…

前端如何破解 CRUD 的循环

据说,西西弗斯是一个非常聪明的国王,但他也非常自负和狂妄。他甚至敢欺骗神灵,并把死者带回人间。为此,他被宙斯(Zeus)惩罚,被迫每天推着一块巨石上山,但在接近山顶时,巨…

IDEA技巧汇总:这30个强大的功能,总有一个你能用上!

程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 6 分钟。 来自:blog.csdn.net/qq_36268103/article/details/109216520 查看代码历史版本调整idea的虚拟内存:idea设置成eclipse的快捷键设置提示词忽略大小写关闭代码检查设置文档…

ChatGPT | 修改RetrievalQA推荐答案的数量

知识库经常遇到一个问题会在一个文件的多处或者多个文件出现,这时候如果只回答一个结果就欠佳,最理想的做法是模仿推荐功能,把合适的多个答案及其出处汇总给用户。 如图,一个接口文档里面提到多处“http请求URL”: 使…

chatgpt赋能python:Python数据分析:如何输出图表

Python数据分析:如何输出图表 作为一名有10年python编程经验的工程师,我认为要想进行数据分析,可视化是非常重要的一个环节。Python作为一门强大的语言,除了进行数据处理、文本处理等编程任务,也可以进行数据可视化。…

集装箱港口布局

集装箱港口布局 根据不同港口的地理位置特征,集装箱码头相应的布局特点也会稍有不同,集装箱港口作业区一般由以下几部分构成:泊位、码头前沿、堆场、维修车间、控制塔等。图2-1,2-2是一个比较常见的港口作业区布局图。 图2-1集装…

中国港口年鉴(2000-2020年)

1、数据来源:自身 2、时间跨度:2000-2020年(部分年份为nh格式) 3、区域范围:全国 4、指标说明: 《中国港口年鉴》版,全面准确地记述和反映了中国大陆江、海、河港口上年度在深化改革、调整结构、整合资…