微信小程序的运行机制与更新机制

1. 小程序运行机制

1.1. 冷启动与热启动

冷启动为用户第一次打开小程序时,因为之前没有打开过,这是第一种冷启动的情兑。第二种情况为虽然之前用户打开过,但是小程序被用户主动的销毁过,这种情况下我们再次打开小程序,小程序也是属于冷启动的情况。

热启动为当用户之前打开过小程序,在一定时间内用户再次打开小程序时称为热启动,这个一定时间大概是5分钟,在这种情况下小程序是不需要重新启动的,只需要将小程序从后台切换到前台。

1.2. 前台与后台

小程序在当前打开时,小程序处于前台状态。小程序右上角有一个胶囊按钮,当点这个按钮时,小程序会被切换到后台。另外当系统从微信切换到其它环境时,小程序也会被和微信一起切换到后台。

1.3. 小程序销毁

小程序进入后台后,并不会马上的销毁,而是会维持一段时间的运行状态,或者称为存活时间,这个存活时间一般是5分钟,5分钟之后小程序就会被微信主动的销毁,这是小程序销毁的第一种情况。第二种消毁的情况是:当小程序占用系统的资源非常高时,也就是当前小程序持续在占用更多系统资源的情况下,这个时候小程 序就有可能被系统销毁或被微信的客户端主动的回收。

2. 小程序更新机制

小程序运行在微信里面,小程序中有视图层、逻辑层还有Native系统层,当开发者用小程序开发工具开发完小程序以后,会把小程序编译发布到对应的微信服务器上,当小程序首次加载时,会把小程序的包从微信服务器上下载到微信里,这个时候就可以第一次的看到微信小程序了。

当用过一次微信小程序以后,如果当前启动小程序为冷启动,这个时候会去读取缓存以及检查小程序是否有新版本更新,如果开发者在小程序后台发布了新版本之后,因为小程序的更新是异步的, 如果当前小程序在本地存在历史版本的话,那么打开的版本可能还是旧的, 因为是异步的,新版本的更新覆盖会比较慢,所以有些用户可能不会马上使用上新的版本,微信官方给出的解释是在最差的情况下,在发布的24小以内也可以下发覆盖到所有的用户。

热启动时是直接将小程序从后台切换到前台显示就可以了。

下面是实现在冷启动时检测小程序版本更新的代码:

checkUpate(){const updateManager = wx.getUpdateManager();updateManager.onCheckForUpdate((res)=>{if (res.hasUpdate){updateManager.onUpdateReady(()=>{wx.showModal({title: '更新提示',content: '新版本已经准备好,是否重启应用',success(res){if(res.confirm){updateManager.applyUpdate()}}})})}})
}

此方法需要在app.js的生命周期onLunch里调用,执行效果如下图所示:

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

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

相关文章

【PALM、WRF-LES】微尺度气象数值模拟—大涡模拟技术

针对微尺度气象的复杂性,大涡模拟(LES)提供了一种无可比拟的解决方案。微尺度气象学涉及对小范围内的大气过程进行精确模拟,这些过程往往与天气模式、地形影响和人为因素如城市布局紧密相关。在这种规模上,传统的气象模…

doc文档下载

目录 下载 安装谷歌浏览器(chrome)Microsoft Edge浏览器 常见问题 下载 见邮件附件 安装 谷歌浏览器(chrome) 打开浏览器,地址栏输入:chrome://extensions/ 右上角打开开发者模式 点击如上图左上角的加载已解压的拓展程序,并选择刚刚解压…

安卓应用开发学习:通过腾讯地图SDK实现定位功能

一、引言 这几天有些忙,耽误了写日志,但我的学习始终没有落下,有空我就会研究《 Android App 开发进阶与项目实战》一书中定位导航方面的内容。在我的手机上先后实现了“获取经纬度及地理位置描述信息”和“获取导航卫星信息”功能后&#x…

afrog-漏洞扫描(挖洞)工具【了解安装使用详细】

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1、afrog介绍 afrog 是一款性能卓越、快速稳定、PoC可定…

MySQL篇-SQL优化实战-减少子查询

回顾 上一篇了解了分析SQL使用的explain,可以点击查看MySQL篇-SQL优化实战了解我在写sql的注意事项还有explain的说明,这次拿一段生产使用的sql进行优化说明。从14s优化到2.6s 待优化的SQL SELECT DISTINCTswpe.tag_number,hca.ACCOUNT_NAME customer…

VBA中类的解读及应用第十三讲:限制复选选择,窗体模块的搭建

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。 类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入&#xff0…

02-部署LVS-DR群集

1.LVS-DR工作原理 LVS-DR模式,Director Server作为群集的访问入口,不作为网购使用,节点Director Server 与 Real Server 需要在同一个网络中,返回给客户端的数据不需要经过Director Server 为了响应对整个群集的访问,…

Java WebService记

Web Services开发 常用的 Web Services 框架有 Apache Axis1 、 Apache Axis2 、 Apache CXF ,而 Apache Axis1 已经逐渐被淘汰所以本文不会讨论,重点关注 Apache Axis2 及 Apache CXF 。 Apache Axis2 在IDEA中新建 Axis2Demo 项目后右键选择 添加框架…

每天10个js面试题(一)

1.js基本数据类型? JavaScript 共有八种数据类型,分别是Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。其中 Symbol 和 BigInt 是 ES6 中新增的数据类型 2.let、const、var的区别? let和const有暂时性死区&#xff0…

开源模型应用落地-LangChain高阶-智能体探究-agent类型(一)

一、前言 大模型具有非常强大的功能,可以解答疑问、撰写报告和文档、总结内容、进行翻译等各种日常工作任务。然而,大模型还可以应用于更多的场景,发挥出更强大的作用。 通过智能体,我们可以实现许多有价值的事情,比如:在日常生活中,我们能借助智能体实现智能家居的自动化…

【渗透入门】SQL注入

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 什么是sql注入sql注入举例防御方式练习靶场 什么是sql注入 SQL注入是一种网络安全漏洞,攻…

【Android源码】Gerrit安装

前言 如果你打开 https://android.googlesource.com/platform/manifest,就会发现,google官方管理Android源码,使用的是Gerrit。Android系统源码是非常大的,用Git肯定是不适合。对于大型项目,得用Gerrit,今…

NoSQL之Redis高可用与优化

一、Redis高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证…

二叉树的链式访问 与 二叉树专题

目录 二叉树的前、中、后序遍历求二叉树第K层节点的个数二叉树查找值为x的节点leetcode相同的树对称二叉树二叉树的前序遍历另一棵子树牛客 二叉树的遍历 二叉树的前、中、后序遍历 1.前序遍历:先访问根节点,再访问左子树,最后访问右子树 根…

【备忘】fastadmin 如何获取列表选中行的pk

去官方搜没搜出来,还得是万能的网友厉害。 //获取选中项 $(document).on("click", ".btn-selected", function () {// 获取选中项idsconsole.log(JSON.stringify(Table.api.selectedids(table)));// 获取选中项所有数据console.log(JSON.strin…

输入一个整数n,输出n的约数为质数的数?两个问题n的约数问题和n的质数问题

输入一个整数n,输出n的约数为质数的数? 一.首先解决n的质数的问题(1)枚举法(2)埃氏筛 二.解决n的质数约数问题 一.首先解决n的质数的问题 (1)枚举法 考虑质数的定义:在大…

conda中创建环境并安装tensorflow1版本

conda中创建环境并安装tensorflow1版本 一、背景二、命令三、验证一下 一、背景 最近需要使用tensorflow1版本的,发个记录! 二、命令 conda create -n tf python3.6 #创建tensorflow虚拟环境 activate tf #激活环境,每次使用的时候都…

理解策略梯度方法:从REINFORCE到PPO

今年2月的时候,导师突然告诉我Ron William离世了。他算是我导师的 a life time friend,关系很好,我做毕业论文的时候,他还来参与了论文的答辩。Ron是一个很友善的老头,和他在强化学习领域的影响力比起来,本…

汽车信息安全--数据安全:图像脱敏

General 随着车联网的发展,汽车越来越智能化,就像是一部“装着四个轮子的手机”。 有人说,智能手机就如同一部窃听器,无论你开机或者关机,它都会无时不刻地监听着用户的一举一动。 可想而知,智能车辆上…

马工程刑法期末复习笔记重点2

马工程刑法期末复习笔记重点2