小程序运行机制

小程序如何运行

  • 打开小程序前会做什么
  • 打开小程序的时候会发生什么
  • 启动过程是怎样
  • 小程序如何更新

小程序的运行环境

运行环境逻辑层渲染层
iOSJavaScriptCoreWKWeView
MacJavaScriptCoreWKWeView
AndroidV8自研XWeb引擎基于Mobile Chrome内核
PCChrome内核Chrome内核
IDENW.jsChrome Webview

小程序的基础库

由JavaScript编写,可以被注入到渲染层和逻辑层运行,总的来说负责处理数据绑定组件系统事件系统通信系统等一系列框架逻辑

  • 渲染层:可以用各类组件组建界面的元素
  • 逻辑层:可以用各类API来处理各种逻辑

基础库组成

  • 提供VD渲染机制相关基础代码(EXparser框架)
  • 提供封装后的内置组件
  • 提供逻辑层的API
  • 提供其他补充能力(自定义组件和插件等)的基础代码

小程序的启动过程

在小程序启动时,微信为小程序展示一个固定启动页面,界面内包含小程序的图标、名称和加载提示图标
在这里插入图片描述

代码的加载

在小程序启动前,微信(客户端)会提前准备好一个页面层级(页面预渲染)用于展示小程序的首页,包括逻辑层和渲染层分别的初始化以及公共库的注入

  • 页面预渲染:初始化JSCore注入AppService基础库,初始化WebView注入WebView基础库
  • 小程序启动:创建基础UI并下载业务代码,渲染层逻辑层注入业务代码后启动

在这里插入图片描述

在打开小程序前,微信已经提前准备好一个WebView层,而当这个预备的WebView层被使用之后,一个新的WebView层也会被提前准备好,这样可以提升用户体验
类比web应用,提前把资源下载,准备好请求、数据,跳转页面时直接进行渲染

冷启动和热启动

只有当小程序进入后台一定时间,或者系统资源占用过高,才会被销毁

  • 冷启动:用户首次打开、或小程序销毁后再次打开,重新加载启动
  • 热启动:已经打开过的小程序,未被销毁,一段时间内再次打开,只是从后台状态进入前台状态

小程序的更新机制

基础库更新

小程序的基础库不会被打包在某个小程序代码中,而是提前内置在微信客户端。一般来说,当微信客户端发布稳定后,小程序会针对新版本的客户端来灰度新版本的基础库。在后台可以配置小程序基础库版本

开发代码更新

  • 未启动时更新:
    • 本地有小程序的历史版本:可能打开旧版本
    • 客户端检查本地缓存:有新版本会静默更新
    • 发布后24h内:下发新版本到用户
  • 启动时更新:
    • 每次冷启动:检查是否有更新版本
    • 有新版本:异步下载新版本,同时启动本地包
    • 新版本需要等下一次冷启动才会应用上
    • 热启动不会触发更新,如果需要马上更新并应用,可以使用wx.getUpdateManager API进行处理
  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值