成都小程序的这些事,你懂吗?
我想从技术的角度来谈谈我对微信小程序的理解,我觉得小程序本身是一个非常优秀的Hybrid App的技术方案。有很多值得学的地方,可以应用到我们Hybrid App的技术方案设计中来。了解和学习小程序技术原理也能更好的优化我们的代码。
渲染层和逻辑层分离
相比于之前常见的Hybrid的方案,小程序使用了双线程模型:小程序的渲染层和逻辑层是是分开的,逻辑层通过JSCore来解析和执行,渲染层是通过webview来渲染。之前的常见Hybrid离线包的方案大多使用webview同时实现页面的渲染和js的解析。这样做的的结果就是隔离了js的runtime,在js代码中无法操作webview中的DOM对象和BOM对象。Js无法做任何和页面渲染有关的操作。只能通过setData把数据从JsCore传递到webview。 独立的JS运行环境,相比于webview同时处理页面的渲染和JS的执行带来了一些好处:
js无法动态的在页面插入节点和干预页面的渲染,解决了安全和管控的问题,否则小程序的上线审核就变得毫无意义。
渲染层和逻辑层的分离,减轻了webview的压力,js的执行和页面的渲染可以并行,不会出现js执行卡主页面渲染的情况。
多个页面可以共享一个JS运行环境,数据很方便的共享,整个小程序的生命周期共享同一个上下文,接近App的体验。
坏处在于:
多了很多webview和JSCore数据传输的消耗,数据需要序列化成字符串格式进行传输。
离线包加载
离线包加载,常见的Hybrid App通过webview加载H5页面,前端页面都是放在服务器端。虽说保证了灵活性。但是加载性能收网速影响大。页面切换白屏时间长。小程序离线包的加载方式。一次性加载所有的前端资源到本地再解压。大大提升了用户体验。不过微信官方为了防止下载离线包的时间过程,也严格限制了小程序包的体积。(分包加载情况下子包大小不能超过2M,也就是初次打开加载的资源不能超过2M)多webview架构
多webview的页面架构,小程序每新开一个页面,都会用一个新的webview来渲染。为了防止webview对内存的消耗。小程序限制层级不能超过10层。预加载webview
相关阅读推荐
-
微信如何做好前期用户积累微信平台开发是什么
企业在做微信小程序的时候,如何积累第一批用户是特别重要的。一个好的小程序肯定要在刚上线的一段时间内就吸引大量的用户。如果做不好前期的用户积累工作,微信小程序后期的发展就会变得比较困难。 -
新功能上线让微信开发更简单
企业要想做好微信小程序,就必须做好微信小程序的开发工作。开发工作做不好,微信小程序的使用和发展都会受到很大的制约。所以,做好微信小程序开发工作是特别重要的。为了提升微信小程序的开发体验,实现更高效的 -
微信小程序开发的作用及功能
微信小程序可以把线上线下相结合起来,让企业方便为用户服务,所以很多线下传统企业纷纷进行微信小程序开发。接下来桔子科技来为大家分享下微信小程序开发是如何把线上线下相结合的。