资讯详情

小程序与HTML5有哪些方面的区别?

作者: 快吧网 2018-12-25 17:07       来源 :快吧整理

微信小程序在朋友圈广泛传播之后,很多人都认为,微信小程序为HTML5(Web核心开发语言)带来了春天,因为开发者可以获得微信的入口。但小程序并不是HTML5应用,而是微信全新的规范定义,即基于XML+JS定义的一套标记语言,既不支持HTML,也不兼容HTML,兼容受限的部分是CSS写法。可见,小程序是一个全新的生态,一个轻OS。

微信小程序在朋友圈广泛传播之后,很多人都认为,微信小程序为HTML5(Web核心开发语言)带来了春天,因为开发者可以获得微信的入口。但小程序并不是HTML5应用,而是微信全新的规范定义,即基于XML+JS定义的一套标记语言,既不支持HTML,也不兼容HTML,兼容受限的部分是CSS写法。可见,小程序是一个全新的生态,一个轻OS。所示的是一个小程序的代码目录,后缀名分别是wxml、wxss和js。


小程序与HTML5有哪些方面的区别?

小程序代码目录


小程序在一个封闭环境中运行,在这个环境中小程序既不能打开任何外部页面,也不能跳转,只能在内部的相对路径中跳转。不过,小程序在微信开放的入口下,用户能很方便地在HTML5网页内构建与微信打通的“轻应用”。不过,小程序虽然打通了客户端和HTML5的连接,但大家在手机或计算机上经常看到的一些无比炫酷的、自带背景音乐的HTML5页面,将不会在小程序里出现。

因为微信小程序开发必须使用独立的开发语言——改自JavaScript、CSS、XML的语言,同时还提供了微信自己开发的框架、各种自有的组件和应用程序编程接口(Application Programming Interface,API)。当然,微信提供的这些内容都是有限的,大多没什么新意,小程序中自然不会出现非常炫酷的HTML5页面。除此之外,小程序与HTML5还有哪些方面的区别呢?区别内容如图所示。

小程序与HTML5有哪些方面的区别?

小程序与HTML5区别

1、开发成本

在HTML5 Web开发时,开发者不仅要考虑前端框架、模块管理工具、任务管理工具,还要考虑开发工具、UI库选择、接口调用工具、兼容性等。虽然现在这些工具的可定制化程度很高,能在一定程度上提高开发者的开发效率,但Web项目开发的配置工作仍然会消耗开发者不少精力,尽管大部分开发者都有一套专属的配置模板,但在开发项目时使用的各种外部库的版本迭代、版本升级所产生的成本费用也是不低的。而开发者在开发微信小程序时,很多内容都不需要考虑这将大大降低开发成本,其相关内容在6.1.2小节中有具体介绍。

2、运行环境

传统HTML5的运行环境是,微信小程序在开发时虽然会用到某些HTML5相关技术,但它的运行环境并不全是,因为小程序在发布上线时需要通过微信审核,而且微信在官方文档中着重强调了小程序脚本内无法使用中常用的Window对象和Document对象。因此,一些专业开发人员便猜测,微信可能会为小程序的运行环境重构一个基于内核的内置解析器,这种解析器还会专门针对小程序做优化,然后微信再配合自己定义的开发语言标准,从而提升小程序运行环境的性能。

3、运行流畅度

HTML5应用本身有一些缺点,比如,它在面对某些复杂的业务逻辑或者丰富的页面交互时,其用户体验总是不尽人意,需要不断地对项目进行优化来提升用户体验。而微信小程序由于拥有自己独立的运行环境,尽管同样用HTML+CSS+JS开发,但配合微信的解析器最终渲染出来的是原生组件的效果,所以,小程序在运行流畅度上会好很多。

4、系统权限

微信官方曾宣传小程序将拥有原生APP的流畅性能,要知道,这可是HTML5 Web应用最令人头疼的地方。可见,小程序有了微信这个强大的后台,将会拥有比HTML5 Web更多的系统权限,比如,数据缓存能力、网络通信状态等,而且这些系统权限都能与微信小程序进行无缝衔接。

另外,小程序也不兼容HTML,这意味着会出现两种情况:一是小程序不能在页面中使用HTML标记;二是小程序既不能嵌入HTML网页,也无法在小程序里放置外链。

不过,小程序的出现,比较有新意、有价值的是,微信为用户提供了一个强大的应用后台支撑离线数据,赋予了那些单打独斗的HTML5网页的原生应用能力,比如,利用原生APP进行网络通信和数据缓存。缓存功能是小程序区别于HTML5的关键点,这意味着小程序解决了HTML5的最大困扰——加载慢、启动慢、运行慢。对此,微信曾夸下海口:“微信公众平台小程序在组件和Web之间取得了最佳的平衡,保证了应用的一致性和运行效率,同时又兼顾了开发的方便性。”

微信小程序的出现,虽然在一定程度上为HTML5带来生机,但它并不是HTML5,两者之间的关系如下图所示。况且现在市面上已经出现了做基础交互的HTML5制作工具,因此,程序开发者现在做的基本上还是HTML5网页。


小程序与HTML5有哪些方面的区别?

原生APP、小程序和HTML5的关系


Hybrid作为一种新的开发模式,很多人对它还不够了解,下面先对它做一下简单介绍。Hybrid是一种APP混合开发模式,不仅具备Web APP跨平台开放优势,而且还兼顾原生APP良好的用户交互体验优势。Web、Hybrid和Native三者关系如图所示。

小程序与HTML5有哪些方面的区别?

Web、Hybrid和Native三者关系

5、网页应用程序(Web APP)

Web APP是由HTML5语言编写,不需要下载即可使用,类似于前文所说的“轻应用”,该应用存在于中。

6、混合型应用程序(Hybrid APP)

Hybrid APP是一种混合类APP,需要下载安装才可使用。虽然它看上去与Native APP相似,但只有很少的UI Web View,访问的内容是网页。例如,新闻类APP和视频类APP普遍采取的是Native框架和Web内容。Hybrid APP现在虽然正在极力打造类似于Native APP的体验,但仍受限于技术、网速等很多因素。因此,Hybrid APP的功能还尚不完善。

7、原生应用程序(Native APP)

Native APP指的是原生程序,需要用户下载安装才可使用,它一般依托于操作系统,有很强的交互性,是一个完整的APP,可拓展性强。

从微信2016年第二季度财报来看,微信与WeChat合并月活跃用户数量达8.06亿人次,特别是微信推出公众号以后,其火爆程度更是大家有目共睹的,同时也推动了HTML5的高速发展。不过,随着公众号业务的需求越来越复杂,小程序的出现使微信提供给开发者的方式发生了全面的改变,比如,用户利用微信提供的过桥工具,可以实现一些HTML5不能实现的功能,这与Hybrid开发类似,但又不同于Hybrid开发,其区别主要表现在以下4个方面(如图所示)。


小程序与HTML5有哪些方面的区别?

小程序开发与Hybrid开发区别


鉴于以上说明,微信小程序既不是HTML5,也不是Hybrid,它是一个基于微信的独立的开发模式,能让开发者完全脱离操作DOM,让开发者的思想转变很大。

相关阅读

精彩推荐