课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
小程序的推广与应用相信大家在日常生活中接触和使用的频率应该都非常高的吧。那么大家是否知道小程序是如何开发的呢?今天我们就通过案例分析来简单了解一下,小程序线程状态都有哪些类型。
小程序由两大线程组成:负责界面的视图线程(viewthread)和负责数据、服务处理的服务线程(appservicethread),两者协同工作,完成小程序页面生命周期的调用。
视图线程有四大状态:
初始化状态:初始化视图线程所需要的工作,初始化完成后向“服务线程”发送初始化完成信号,然后进入等待状态,等待服务线程提供初始化数据。
次渲染状态:当收到服务线程提供的初始化数据后(json和js中的data数据),渲染小程序界面,渲染完毕后,发送“次渲染完成信号”给服务线程,并将页面展示给用户。
持续渲染状态:此时界面线程继续一直等待“服务线程”通过this.setdata()函数发送来的界面数据,只要收到就重新局部渲染,也因此只要更新数据并发送信号,界面就自动更新。
结束状态:页面被回收或者销毁、应用被系统回收、销毁时触发。
服务线程五大状态:
初始化状态:此阶段仅启动服务线程所需的基本功能,比如信号发送模块。系统的初始化工作完毕,就调用自定义的onload和onshow,然后等待视图线程的“视图线程初始化完成”号。onload是只会次渲染的时候执行一次,onshow是每次界面切换都会执行,简单理解,这就是差别。
等待激活状态:接收到“视图线程初始化完成”信号后,将初始化数据发送给“视图线程”,等待视图线程完成初次渲染。
激活状态:收到视图线程发送来的“次渲染完成”信号后,就进入激活状态既程序的正常运行状态,并调用自定义的onReady()函数。此状态下就可以通过this.setData函数发送界面数据给界面线程进行局部渲染,更新页面。
后台运行状态:如果界面进入后台,服务线程就进入后台运行状态,从目前的官方解读来说,这个状态挺奇怪的,和激活状态是相同的,也可以通过setdata函数更新界面的。毕竟小程序的框架刚推出,应该后续会有很大不同吧。
结束状态:页面被回收或者销毁、应用被系统回收、销毁时触发。
小程序启动会有两种情况,一种是「冷启动」,一种是「热启动」。假如用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,只需将后台态的小程序切换到前台,这个过程就是热启动;冷启动指的是用户次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动。
更新机制
小程序冷启动时如果发现有新版本,将会异步下载新版本的代码包,并同时用客户端本地的包进行启动,即新版本的小程序需要等下一次冷启动才会应用上。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。