微信小程序运行机制——简明教程(十)

 

相信大家都有所体会,当我们第一次打开小程序的时候会比较慢,如果你已经打开过一次小程序了,再次打开这个小程序就会变得快一点。那小程序是怎么启动的呢?

小程序的启动可以分为两种,冷启动和热启动。

image-20200122135608764

一、热启动

首先我们来讲热启动。假如用户已经打开过某个小程序,在一定时间内再次打开,这个时候小程序不需要重新启动,只需要把后台缓存的小程序切换到前台来使用。

二、冷启动

冷启动指的是小程序首次打开,或者是小程序被微信主动消毁后再次打开的情况,这个时候小程序需要重新加载启动。

1、销毁机制

那么什么情况下小程序会被销毁呢?这里又分两种情况。因为小程序进入后台之后,微信客户端会帮我们维持小程序的的状态,超过时间时候,就会被微信主动销毁。这个时间目前知道的是5分钟。另外一种情况是在短时间内,连续收到两次系统警告⚠️,微信就会自动销毁小程序,这个短时间的间隔是5秒。

2、更新机制

那还有一个疑问,就是当我们已经打开小程序,当时这个时候微信小程序又跟新了一个版本,这个时候会怎么启动呢?其实如果有跟新的包,微信是会异步下载的,目前启动的还是微信客户端本地的包进行启动。当我们下次打开该小程序的时候,才会打开最新的包。

3、加载机制

我们可以看到,左边的是微信小程序启动的时候微信客户端视图层和逻辑层的一些交互逻辑以及数据缓存的存储操作。在小程序启动的时候,会向CDN请求最新的代码包,当第一次请求代码包的时候,要等代码包下载完毕,注入到view容器内才可以看到小程序的页面。所以在网络不好的情况下,会特别慢,微信客户端会把代码缓存到本地。

下次启动的时候,会先从CDN上面请求是否有最新的代码包,这里有一个校验的过程。如果有最新的代码包,会异步下载,启动就是运行本地的,下次才是最新的。

另外还可以访问第三方服务器,发起ajax请求,服务器放回json数据。

image-20200122142013634

三、CDN

这里顺便说一下CDN的作用,CDN其实是内容分发网络,主要的作用是把我们请求的内容分发到距离我们最近的一个网络节点服务器,提高客户的访问响应速度以及成功率。

本节我们学习了小程序开发框架的底层架构,以及微信针对小程序做的一些关键优化。

推荐阅读:

本文为博主原创文章,知识共享,开源精神,转载注明出处。