小程序
核心-双线程架构

从上图可以看到,小程序分为了 渲染层(Webview)和逻辑层(App service),然后中间是系统层(Native)通过 JsBridge连接,那么为什么要分成两块呢?
- 提高用户体验(ui 和逻辑分离,避免页面长时间阻塞和卡顿)
- 优化应用性能(运行在不同的线程中,可以同时渲染或者计算)
- 开发效率更高(解耦和松散耦合)
浏览器本省是一个单线程架构,主要原因是 js 允许操作 Dom,所以 js 线程和渲染线程只能互斥运行 那么问题又来了,怎么做到的呢?
- 根本原因就是微信小程序禁止 js 操作 DOM。