微信小程序为什么使用双线程模型

双线程模型

为什么使用双线程模型?
个人理解总结:

小程序的架构设计时,要求渲染快、加载快。渲染页面的技术主要分为三种:

  1. 纯客户端原生技术渲染(纯客户端技术需要与微信代码一起编包,跟随微信发布版本,这样的开发节奏不对);
  2. 纯web技术渲染(纯web技术,那么一些复杂交互页面可能面临一些性能问题,因为Web技术中,UI和JS的脚本在单线程中,这样容易导致逻辑任务抢占UI渲染资源。);
  3. 介于客户端技术和Web技术之间(Hybrid技术)。

最终选取的是类似微信JSSDK之后这样的HyBrid技术,页面用Web技术渲染,辅之以大量的接口提供丰富的客户端原生能力。同时,每个小程序的页面都是使用不同的WebView渲染。

如果开发者可以直接通过JS操作界面的DOM树,那么一些敏感数据就毫无安全性可言,故微信提供了一个沙箱的环境来运行开发者的JS代码,这个环境不能有任何的浏览器先关的接口,只能通过JS解释执行环境,类似于HTML5的ServiceWorker启动另一个线程来执行JS。

但由于小程序是多WebView的架构,所以每一个页面都是不同的WebView渲染显示,所以单独创建了一个线程去执行JS,也就是逻辑层,而界面渲染的任务都在WebView线程里执行(渲染层)。即双线程模型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值