【微信小程序】两大线程与微信WXS

微信小程序采用双线程模型,包括视图层和逻辑层,以提高性能和用户体验。WXS作为增强WXML功能的脚本,运行在WebView的JS线程,具有单例模式和特定适用场景,主要用于用户交互和数据处理。
摘要由CSDN通过智能技术生成

选型:渲染界面的技术

纯客户端原生渲染 缺点:无法动态打包,动态下发。
纯Web技术来渲染 缺点:在一些复杂交互的页面上可能会面临一些性能问题。
同时,在Web技术中,UI渲染跟JavaScript脚本执行都是在一个单线程中执行,容易导致抢占资源。
客户端原生 + Web 优点:
界面主要由成熟的Web技术来渲染,辅之以大量的接口提供丰富的客户端原生能力。
同时,每个小程序页面都是用不同的WebView来渲染,更贴近原生体验,避免单个WebView任务过于繁重。

选型:脚本执行的环境

由于JavaScript的灵活性和浏览器的功能丰富,会导致很多不可控的隐私,因此,微信提供了一个单纯的JS执行环境。
通过对其中的控件进行自定义,保证了采用这个沙箱环境之后,不会有任何浏览器相关的接口,没有BOM和DOM对象。
考虑到小程序是一个多WebView架构,每个页面都是由不同的WebView渲染后显示的,
在这个架构下,我们不好去用某个WebView中的ServiceWorker去管理所有的小程序页面。
得益于客户端具有的JS解释引擎,可以创建一个单独的线程去执行JS,在这个环境下执行的都是有关小程序业务逻辑的代码。

这就是小程序双线程(渲染层+逻辑层)模型的由来。

双线程模型

小程序的运行环境分为视图层(View Thread)和逻辑层(Appserv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值