小程序

什么是小程序

小程序是集成在大的移动app(常见的微信,支付宝)内的可以使用app提供的原生能力的,并且可以实现相较于传统h5 更快的加载能力,原生的体验的‘特殊’的h5

小程序和h5的区别

运行环境

  • 小程序是运行在特定的APP(如微信,支付宝)内的一个独立的运行环境。
  • H5则是运行在遵循相同的Web标准的浏览器内

开发环境和工具

  • 小程序的开发需要使用特定的开发工具,如微信开发者工具,阿里巴巴的IDE等。即使市面上出现了uniapp之类的小程序框架,但是最终也是编译为小程序开发工具能识别的目录结构和代码。
  • H5的开发工具是只要能编辑html和css,js的文本编辑器都可以。

渲染机制

  • 相比h5的单线程,即H5 页面的渲染和逻辑都在同一个线程(主线程)中运行,小程序采用的是双线程架构,逻辑层和渲染层是分开的,它们运行在两个不同的线程中。所以在小程序中js的执行不会影响到页面的加载,相比h5有了更快的加载能力,而js和dom之间通过数据桥(Data Bridge)的机制实现通信,两个线程是相互独立的,意味着,小程序在进行页面渲染和处理应用逻辑时,可以利用多核CPU的并行计算能力,提高运行效率。缺点是处理复杂动画或者交互是需要两个线程频繁通信。导致页面可能出现顿卡。

    • 区别:小程序中是不能访问DOM 和 BOM 的相关的 API。也就导致了很多三方库不能使用了。

获取系统权限面

  • 小程序可以使用宿主允许的所有权限,也就是app的权限
  • h5只能使用浏览器提供的特定的api

更新机制方面

  • 在某个小程序第一次启动时,宿主app需要下载小程序代码包。第二次访问的时候,宿主app会判断小程序代码包是否有更新,如果有更新,会下载新的小程序包,为了减少下载的时长,一般每次上传小程序包是,都会生成差量的diff包。这里补充一点,相比h5访问,下载代码包后,可以在二次访问的时候减持用户的访问请求,直接读本地。从而快速打开app
  • 而h5的更新机制则依赖于浏览器的缓存策略,以及开发者生成的hash。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、你是怎么封装小程序数据请求的? 我们会在现在小程序根目录下,创建一个config.js作为一个独立的模块,用以...
    王云飞_小四_wyunfei阅读 2,629评论 0 4
  • 最近参加了几次面试,有面试官问到了这类问题:微信小程序比h5的优势是什么,为什么小程序要比h5更流畅,小程序内如何...
    三十三两白银阅读 87评论 0 0
  • 一、小程序简介 小程序(Mini Program),是一种不需要下载安装即可使用的应用,是内嵌在微信APP里面的一...
    大憨憨阅读 723评论 0 2
  • 小程序定位 小程序是连接产业互联网利器。未来微信小程序开发生态还将从操作系统底层,为跨系统开发难题给出中国方案,凭...
    汉谷阅读 982评论 0 0
  • 小程序的实现原理 根据微信官方的说明,微信小程序的运行环境有 3 个平台,iOS 的 WebKit(苹果开源的浏览...
    Drlilian阅读 433评论 0 0