技术选型
Hybrid 技术
小程序的架构要求:快!加载快、渲染快……
渲染界面的技术:Hybrid 技术,介于原生技术和web 技术之间。
若使用纯客户端原生技术,小程序代码需要与微信代码一起编包,跟随微信发版,这种开发节奏必然是不对的。
所以小程序像Web 技术那样,有一份随时可更新的资源包放在云端,通过下载到本地,动态执行后即可渲染出界面。
若使用纯 Web 技术来渲染小程序,UI渲染跟 JavaScript 的脚本执行都在一个单线程中执行,这就容易导致一些逻辑任务抢占UI渲染的资源。
所以,渲染层使用了多个WebView线程渲染,从而避免了单个WebView的任务过于繁重,让用户有更好的交互体验。
最终,小程序界面主要由成熟的 Web 技术多线程渲染,部分功能是由客户端原生能力实现。
小程序可以写JavaScript 的原因
小程序里可以写JavaScript,是因为客户端系统javaScript 解释引擎,在iOS下是用内置的 JavaScriptCore框架,在安卓则是用腾讯x5内核提供的JsCore环境。
至于小程序的js中没有DOM 操作,是出于安全考虑的,比如我们使用window.location 可以跳转任意页面,就会带来一定的风险。
小程序把JavaScript 代码放在了一个沙箱环境里,阻止了用户对DOM 的直接操