1. 小程序的宿主环境为微信客户端,宿主环境执行小程序的各种文件:wxml文件、wxss文件、js文件;
2. 当小程序基于 WebView 环境下时,WebView 的 JS 逻辑、DOM 树创建、CSS 解析、样式计算、Layout、Paint (Composite) 都发生 在同一线程,在 WebView 上执行过多的 JS 逻辑可能阻塞渲染,导致界面卡顿;
3.以此为前提,小程序同时考虑了性能与安全,采用了目前称为双线程模型的架构;
4. 双线程模型:
WXML模块和WXSS样式运行于渲染层,渲染层使用 WebView线程渲染(一个程序有多个页面,会使用多个 WebView的线程),JS脚本(app.js/home.js等)运行于逻辑层,逻辑层使用JsCore运行JS脚本,这两个线程都会经由微信客户端(Native)进行中转交互。