微信小程序入门(五)

24.MINA框架讲解

MINA框架架构

25.小程序运行机制

小程序在首次打开的时间会比较长,后续再打开启动会很快,那么小程序是如何启动的呢?

运行机制-启动

  • 冷启动
  • 热启动

热启动:假入用户已经打开某个小程序,然后在一定时间内再次打开小程序,这个时候,就不需要重新启动了,只需要把后台小程序切换到前台来使用,这个过程就叫做热启动。


冷启动:用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动。那么小程序什么时候被主动销毁呢?有两种情况。

  • 小程序进入后台后,客户端会帮我们在一定时间内维持小程序的一个状态, 超过时间后就会被微信主动销毁,这个时间是五分钟。
  • 当在短时间内连续收到系统报警的时候,微信就会主动销毁小程序,这个短时间的间隔是5s。

26.小程序加载机制

运行机制-加载

27.生命周期

小程序的生命周期分为应用生命周期和页面生命周期

应用生命周期


      可以看到小程序应用生命周期分为四个钩子:onLaunch,onShow,onHide和onError.第一次进入小程序的时候,客户端会帮我们初始化好小程序的运行环境,同时会从CDN上下载或者从本地存储拿到小程序的代码包,然后把它注入到运行环境里面。初始化完毕后,微信客户端会给逻辑层App.js的app实例来派发onLaunch事件,那么onLaunch方法就会被调用。进入小程序之后,用户可以点击“关闭”或者手机上的“Home”键离开小程序,这个时候小程序是没有被直接销毁,而是进入到后台的状态。在逻辑层App构造器所定义的onHide方法就会被调用。当我们再次打开小程序的时候,微信客户端会把后台Hide的小程序唤醒,这个时候小程序就会进入前台状态。在App构造器里面的onShow方法就会被调用。当小程序发生脚本错误或者API调入失败的时候会触发onError方法。这里的globalData表示小程序应用的一个全局数据。


页面生命周期


当页面初次加载的时候,微信客户端会给我们在逻辑层所定义的一个配置实例派发一个onLoad事件,那么配置构造器参数所定义的onLoad方法就会被调用,这个onLoad方法在页面没被销毁之前只会调用一次。在onLoad回调中我们可以拿到当前页面的一些参数。页面显示之后,配置构造器参数所定义的onShow方法就会被调用。页面初次渲染完成之后,配置构造器参数所定义的onReady方法就会调用,onReady方法触发之后,逻辑层和视图层就可以进行交互了。在当前页的基础上打开新的一页,那么在当前页就会触发配置构造器参数所定义的onHide方法。如果关闭了当前页的话,就会触发onUnload方法。这里的data表示当前页的数据。


实例图

小程序由两大线程组成

  • AppServie Thread
  • View Thread

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏为数不多的Android技巧

Android Studio你不知道的快捷键(一)

一般来说键盘用的越多鼠标用的越少,那么写起代码来效率就越高;常见的快捷键想必大家都已经掌握,接下来我就分享一些你可能不知道的但确非常实用的快捷键。

13240
来自专栏葡萄城控件技术团队

渐进式Web应用(PWA)入门教程(下)

渐进式Web应用程序需要使用HTTPS连接。虽然使用HTTPS会让您服务器的开销变多,但使用HTTPS可以让您的网站变得更安全,HTTPS网站在Google上的...

11400
来自专栏奇梦博客

发帖UMEditor编辑器增加表情,附加表情包下载 PHP 配置 XiunoBBS

18550
来自专栏mySoul

浏览器推送 comet

服务器端的推送事件的方式为客户端在创建一个EventSource对象时会建立一个到服务器的连接,服务器会保持这个连接处于打开的状态,当发生一个事件的时候,服务器...

12030
来自专栏云加头条

如何利用云对象存储 COS 免费托管静态网站

在此实践中,您可以在腾讯云对象存储(以下简称 COS)上托管静态网站,访客可以通过您的自定义域名(例如 www.example.com )访问托管的静态网站。

4.6K10
来自专栏進无尽的文章

干货-GitHub 使用中的一些细节

第一次使用 github 的朋友相信都会挺陌生的,因为是纯英文的页面加上不适太熟悉内部的操作,所以一些常规的操作却找不到操作的入口,甚是捉急,本文就几个操作细节...

20730
来自专栏云服务试衣间

简单几步,利用Serverless,让COS中文件变更自动刷新CDN

SCF能实现事件式的触发,让你的一段代码跑在云上,无需自己去搭建服务器。而这里我们要利用能力:COS文件上传/删除的触发器。

6.4K290
来自专栏十月梦想

nodejs的hello world的详解

前面几篇介绍过nodejs的第一个项目!这篇系统的介绍一下第一个nodejs项目

8840
来自专栏云计算教程系列

如何在CentOS上安装Perl 5

Perl5是一种全功能的编程语言。它用于所有类型的生产项目,包括世界各地的商业业务系统。Perlbrew是Perl5的安装和版本切换工具,您可以安装,删除,并在...

19600
来自专栏小狼的世界

Mac下安装Android模拟器

像iPhone的iOS或者其他的手机操作系统一样,Android的开发者非常需要一个模拟器,以在设备上实地测试前对自己开发的应用进行测试。这需要借住SDK来实现...

44520

扫码关注云+社区

领取腾讯云代金券