众所周知的小程序,都知道其诞生地是微信。最开始的愿景,是希望通过自定义一套全新的界面开发模式,来实现将微信能力安全、可控的开放使用。与此同时,微信团队也希望能够通过小程序规避掉之前用 Web 开发会遇到的各种问题,比如渲染卡顿、加载白屏时间长等问题,提供类似于原生的体验、安全易用的微信数据开放、更多端能力的提供、简单高效的开发方式。

其核心是前端容器化,分为UI和数据两个层面。

UI层面容器化,微信的解决方案很简单,就是重新创建一套组件,完全抛弃 DOM 的标准组件。这样就可以做到 UI 上的完全可控和安全。

数据层面容器化,本质上就是 JS 的沙盒,避免开发者直接拿到 UI 及其数据,这也就诞生了小程序和别的差别最大的地方——双线程架构。

这个架构简单科普一下,分为:

  • 逻辑层: 运行在端内创建的 JS 线程中,用户的业务代码在该线程中执行,如你的 js 代码
  • 渲染层: 运行在端创建的 WebView 中,用户的模板和样式代码在其中执行,如你的 wxml、wxss 代码那么为什么要如此设计呢?其实最最主要地目的就是为了"安全"(并不是为了保障渲染的更顺畅)是的,这是一个加了引号的安全,这里的安全是对小程序的平台方来说的。任何软件平台都有它的游戏规则,比如 UI 界面的一致性,网络请求域的收敛,平台功能限制等,只是小程序稍有不同的是虽然是基于 web 技术,但并不想让开发者使用到全量的 web技术。所以把用户的代码放到一个脱离 web 的线程中去运行就是一个最稳妥的方案了。

技术标准及业务生态的演变

不得不说,小程序无论在技术标准还是业务生态发展,经历过近几年的发展,都已经有质的飞跃。相比于十几年前的HTML5技术和生态,有过之而无不及。

1、先说说技术标准

从Web 1.0进化到2.0之后的十几年间,移动App都是各大软件提供商用于争夺消费者碎片化时间的主战场。HTML5这种标准化的、普适的文本化内容编码格式,被广泛应用,并最终成为了互联网的基石之一。Web2.0向3.0的进化过程中,软件技术标准的扩展,小程序类技术的编码和内容格式,整体基于HTML5基础上,更加轻量,也更加开放有生命力。

从标准的角度看,当前互联网上的小程序类技术,几乎都借鉴了这个领域的先行者微信的规范。可以说,微信小程序就是这个领域的“既成事实”标准。故此互联网系列全球标准的制定者W3C,也正在通过其Mini-Apps工作组制定国际标准。

2、再说说小程序业务生态

从2017年微信首次推出小程序开始,经过四年发展,各大互联网巨头纷纷推出自己的小程序应用平台,小程序成为真正意义上的“互联网新技术标准”。截至2021年上半年,全网小程序数量突破700万个,其中,微信小程序是行业主流,数量超过430万个,占比高达约61.43%。

PC端运行小程序已成为潜力趋势

虽然大家都默认在智能设备中运行小程序的能力是一线互联网企业的“专利”,事实上,已经有第三方公司开发了小程序引擎,并能够跑在手机、Windows、Mac、Linux、统信、麒麟等智能设备操作系统上,FinClip 小程序容器技术便是其中之一。

这意味着,移动端、PC 端、IOT等智能终端都能运行小程序了。跨端框架,在一些大厂的小程序平台中,有开始出现框架反制小程序引擎的问题。比如开发者想要对小程序自定义组件的时序进行一些优化,让其更加符合现代框架标准,却发现强依赖了这个框架的时序,导致开发者根本无法将优化立马上线,因为一旦优化,用了跨端框架的小程序几乎全部无法运行。

一直都认为桌面应用中的浏览器是HTML5的“天下”,事实上,技术的进步,会给我们技术人带来持续不断的惊喜。小程序的技术及生态,似乎在重复着HTML5当初繁盛一时的技术景象,未来发展如何,让我们拭目以待。

像微信一样把小程序运行在桌面端软件上相关推荐

  1. 小程序运行时相关信息

    (1)运行环境:小程序的运行环境 微信小程序运行在三端:iOS(iPhone/iPad).Android 和 用于调试的开发者工具. 三端的脚本执行环境以及用于渲染非原生组件的环境是各不相同的: 在 ...

  2. 微信小程序运行的底层逻辑

    小程序的启动 微信客户端在打开小程序之前,会把整个小程序的代码包下载到本地. 紧接着通过 app.json 的 pages 字段就可以知道你当前小程序的所有页面路径: {"pages&quo ...

  3. finclip小程序运行机制与微信小程序运行机制

    根据运行小程序的宿主应用环境不同,小程序也会有不同的启动机制. #1. 小程序启动 小程序会有两种情况,一种是冷启动,一种是热启动. 冷启动:用户首次打开或小程序被宿主应用主动销毁后再次打开的情况,此 ...

  4. 微信小程序运行及更新机制

    微信小程序运行及更新机制 1.微信小程序运行机制 1.1 前台和后台 1.2 小程序启动:冷启动和热启动 1.3 小程序销毁 2.微信小程序更新机制 2.1 启动时同步更新 定期检查发现版本更新 用户 ...

  5. 微信小程序性能测试——小程序运行时性能测试

    微信小程序性能测试主要可以分为两个方面,启动性能 和 运行时的性能.启动性能测试可参考前面文章<微信小程序性能测试--启动性能专项测试>,本文主要介绍如何利用 云测服务 进行小程序运行时性 ...

  6. 微信小程序运行机制解析

    在微信小程序诞生之前,最流行的技术应该是Hybrid 混合开发.Hybrid 混合开发有两个优势,一是跨平台,二是热更新.而微信小程序就更像是运行在微信这个特定环境下的 Hybrid 技术. 接下来从 ...

  7. 7.4【微信小程序全栈开发课程】小程序上线--基于Ubuntu搭建小程序运行环境

    上一节我们安装了nginx和SSL证书,这一节继续来搭建小程序运行环境 1.配置nodeJs环境 (1)安装node.npm 我们云服务器是Ubuntu系统,通过apt-get安装即可 //下载nod ...

  8. 前端 domparser未定义怎么解决_开源|wwto:小程序跨端迁移解决方案——微信转其他小程序...

    开源项目专题系列 (二) 1.开源项目名称:wwto 2.github地址: https://github.com/wuba/wwto 3.简介:wwto是58同城推出的一种小程序跨端迁移解决方案,可 ...

  9. 企业微信中授权小程序

    授权的时候先判断当前小程序运行环境 使用企业微信专有接口wx.getSystemInfo if (res["environment"]=='wxwork') {// 企业微信环境w ...

最新文章

  1. HDLBits 系列(39)求解带有奇校验的串口接收数据的简化电路设计
  2. 大专学java还是python_零基础应该选择学习 java、php、前端 还是 python?
  3. ros 消息队列与缓冲区_[ROS] [笔记(1)] 一个最简单的例子:Hello Robot(消息、发布者与订阅者)...
  4. 在visual studio中使用git版本系统(zz)
  5. 如何在PowerPoint演示文稿中使用iTunes音乐
  6. c语言链表有没有哨兵的区别,链表中的哨兵(sentinel)
  7. C++存储区域基础概念详解
  8. Zlib压缩算法:LZ77、LZ78、霍夫曼编码、滑动窗口、Rabin-Karp算法、哈希链、I/O缓冲区
  9. SilverlightComponent for ExtJS
  10. 计量经济学 pdf_计量经济学笔记(十六)
  11. 初见,Devexpress
  12. 三星6818基于uboot的流水灯程序
  13. 苹果x屏幕失灵乱跳_苹果iphone11 pro max屏幕触摸失灵怎么办?
  14. ( 22美赛C题)基于投资最优交易策略的研究(部分内容)
  15. 宁波银行金融科技面试
  16. 云主机的六大安全威胁
  17. 基于pyskl的poseC3D训练自己的数据集
  18. BuddyPress汉化中文语言包 BuddyPress汉化教程步骤
  19. 《西部世界》中“人工智能”之上的类人类嗅觉,初步实现了!
  20. 全文收索服务-solr介绍

热门文章

  1. 华为徐直军:“Huawei Inside”量产轿车已做到城区通勤无干预自动驾驶
  2. 打印设置自定义表尾_Excel2013打印时怎么固定表头及表尾让打印后的每页都可以看得到...
  3. WPF编程宝典--XAML
  4. 百度云sugar大屏模板2
  5. 中南民族大学c语言报告,中南民族大学计算机C语言试题10套.doc
  6. Mac【iTerm终端】快捷键及美化
  7. 华为mate9鸿蒙,华为mate9很卡,升级鸿蒙系统,流畅度基本秒默iOS12?
  8. HDU 1530 Maximum Clique 最大团
  9. mysql declare浮点数_MySQL - Belong_yucl - 博客园
  10. 砍掉 16 位、32 位,英特尔提出 x86-S ,直接支持 64 位架构!