小程序原理

本文探讨了小程序的架构,解释了其在Skyline环境下采用的双线程模型,以减少卡顿和提高性能。小程序的本质是逻辑层和视图层分离,通过线程间通信进行数据交换,这带来一定的延迟。同时,文章介绍了小程序的冷启动和热启动机制。
摘要由CSDN通过智能技术生成

开发过一段时间小程序了,对于我们现在使用的业务来说,使用小程序开发上手很快,所以反思了一下,那么小程序的原理到底是怎么样的呢?我自己总结一下。

小程序的架构(官网原话)

当小程序基于 WebView 环境下时,WebView 的 JS 逻辑、DOM 树创建、CSS 解析、样式计算、Layout、Paint (Composite) 都发生在同一线程,在 WebView 上执行过多的 JS 逻辑可能阻塞渲染,导致界面卡顿。以此为前提,小程序同时考虑了性能与安全,采用了目前称为「双线程模型」的架构。

新的架构:

在 Skyline 环境下,我们尝试改变这一情况:Skyline 创建了一条渲染线程来负责 Layout, Composite 和 Paint 等渲染任务,并在 AppService 中划出一个独立的上下文,来运行之前 WebView 承担的 JS 逻辑、DOM 树创建等逻辑。这种新的架构相比原有的 WebView 架构,有以下特点:

界面更不容易被逻辑阻塞,进一步减少卡顿
无需为每个页面新建一个 JS 引擎实例(WebView),减少了内存、时间开销
框架可以在页面之间共享更多的资源,进一步减少运行时内存、时间开销
框架的代码之间无需再通过 JSBridge 进行数据交换,减少了大量通信时间开销
而与此同时,这个新的架构能很好地保持和原有架构的兼容性,基于 WebView 环境的小程序代码基本上无需任何改动即可直接在新的架构下运行。WXS 由于被移到 AppService 中,虽然逻辑本身无需改动,但询问页面信息等接口会变为异步,效率也可能有所下降&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值