美文网首页
小程序原理

小程序原理

作者: my木子 | 来源:发表于2021-05-18 17:03 被阅读0次

小程序与普通网页开发的区别

  • 小程序的主要开发语言是 JavaScript,小程序的开发同普通的网页开发相比有很大的相似性。
  • 网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应(白屏),而小程序渲染时基于 双线程 模型的,在这个模型中小程序的 逻辑层渲染层 分开在不同的线层运行。(逻辑层运行在 JSCore 中,并没有一个完整浏览器对象,因而缺少相关的DOM API和BOM API。这一区别导致了前端开发非常熟悉的一些库,例如 jQuery、 Zepto 等在小程序中是无法运行)。
  • JSCore 的环境同 NodeJS 环境也是不尽相同,所以一些 NPM 包在小程序中也无法运行。
  • 微信客户端给小程序提供宿主环境,小程序借助宿主环境提供的能力,可以完成许多普通网页无法完成的功能。
小程序的运行环境

双线程的优劣

  • 小程序是基于双线程模型,那就意味着任何数据传递都是线层间的通信,也就是统一都会有一定的延迟,不像传统web,当界面需要更新时,通过调用更新接口UI就会同步地渲染出来。在小程序的架构里,一切都是异步。
  • 除了逻辑层与渲染层之间的通信有延时,各层与客户端原生交互同样是有延时的。
  • 异步带来的好处,页面也和j JS 并行执行,不会出现传统web端js阻塞页面渲染的情况。

渲染层和逻辑层

  • 小程序的运行环境分成渲染层和逻辑层,其中 WXML 模板和 WXSS 样式工作在渲染层,JS 脚本工作在逻辑层。
  • 小程序的渲染层和逻辑层分别由2个线程管理:渲染层的界面使用了WebView 进行渲染;逻辑层采用JsCore线程运行JS脚本。一个小程序存在多个界面,所以渲染层存在多个WebView线程,这两个线程的通信会经由微信客户端(下文中也会采用Native来代指微信客户端)做中转,逻辑层发送网络请求也经由Native转发,小程序的通信模型下图所示。
小程序的通信模型

小程序运行机制

  • 热启动:用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,只需将后台态的小程序切换到前台
  • 冷启动:用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动。

程序与页面

  • 小程序页面渲染的技术能力是基于原生web和native 的 Hybrid 技术
  • 微信客户端在打开小程序之前,会把整个小程序的代码包下载到本地

相关文章

  • 小程序原理

    微信小程序是介于Native和WebApp之间的产物,它依托浏览器WebView展示同时可以调用原生能力,比如获取...

  • 小程序原理

    小程序与普通网页开发的区别 小程序的主要开发语言是 JavaScript,小程序的开发同普通的网页开发相比有很大的...

  • 微信小程序的开发与原理

    微信小程序的开发与原理 1, 小程序与普通网⻚开发的区别 小程序的主要开发语言是 JavaScript ,小程序的...

  • 小程序开发架构及原理

    小程序开发架构及原理 小程序宿主环境差异 iOS JavaScriptCore WKWebView 渲染 andr...

  • 小程序入坑指南

    小程序原理 小程序本质上也是一个MVVM框架,virtual dom,view和model的双向绑定,配合小程序丰...

  • About WeChat

    Offical Website 一起脱去小程序的外衣 微信小程序开发框架、资源-干货汇总 setData 工作原理...

  • 小程序原理初探

    微信小程序是介于Native和web app之间的产物。它依托浏览器(webview)展示,同时可以调用原生能力(...

  • 小程序底层原理

    页面渲染的方式主要有三种 1.web渲染 2.Native原生渲染 3.web与Native两者掺杂,即Hybri...

  • 小程序-工作原理

    小程序的核心思想:数据驱动+通信模型 通信模型:小程序的渲染层和逻辑层分别由2个线程管理:渲染层的界面使用了Web...

  • 浅谈小程序运行机制

    摘要: 理解小程序原理... 原文:浅谈小程序运行机制 作者:小白 Fundebug经授权转载,版权归原作者所有。...

网友评论

      本文标题:小程序原理

      本文链接:https://www.haomeiwen.com/subject/rtqyjltx.html