微信小程序和HTML5应用有什么区别?

热门回答:
HTML英文全称为Hyper Text Markup Language 。即超文本标记语言 。H5是一种技术 。依附的外壳是是浏览器 。而小程序是基于微信的一种不需要下载安装即可使用的应用 。
【微信小程序和HTML5应用有什么区别?】 从“前端开发”的视角来看 。微信小程序和HTML5也存在着多方面的不同 。概括来说有以下四个方面的区别!

微信小程序和HTML5应用有什么区别?

文章插图
第一条是运行环境的不同
传统的HTML5的运行环境是浏览器 。包括webview 。而微信小程序的运行环境并非完整的浏览器 。大家注意 。我这里写的是“非完整的浏览器” 。有以下几个原因
小程序的开发过程中会用到html5相关的技术(并非全部)
小程序最后的发布上线需要微信审核 。微信在不更新自身软件的情况下可以将小程序更新到自身软件内 。这就联想到了ReactNative框架,并且已经有开发者在微信小程序的开发工具源码中发现使用了react和NodeWebkit库
官方文档中着重强调了脚本内是无法使用浏览器中常用的window对象和document对象(基于这一点 。像zepto/jQuery这种操作dom的库就被完全抛弃了)
所以我个人认为 。小程序的运行环境很有可能是微信开发团队基于浏览器内核完全重构的一个内置解析器 。针对小程序专门做了优化 。配合自己定义的开发语言标准 。提升了小程序的性能 。
不过由于微信给开发者提供了开发工具 。而开发工具中也内置了编程、调试、开发环境、发布于一身 。我们也不用再探讨它的最终运行环境了 。只要按照官方文档进行开发就可以了 。并且从微信团队给开发者提供开发工具这一举动 。让我联想到了苹果给开发者提供的X-CODE开发工具 。可以想象微信的“野心”可见一斑
第二条是开发成本的不同
这里我提出了一个问题 。当我们面对一个Html5web开发需求时 。我们需要考虑什么呢?
抛去开发工具(vscode、sublimtext、Atom等)不谈 。大到前端框架(Angular、react、vue、backbone等)、模块管理工具(Webpack 、Browserify 等)、任务管理工具(Grunt、Gulp等) 。小到UI库选择、接口调用工具(ajax、Fetch Api等)、浏览器兼容性等都要我们一一考略 。再不济用jqery插件写H5 。也要在开发过程中去寻找合适的jquery插件来配合项目 。
尽管这些工具可定制化非常高 。并且提高了开发者的开发效率 。但我相信项目开发的配置工作已经消耗了不少精力 。尽管大部分开发者都有自己的配置模板 。但长久以来对于项目中使用的各种外部库的版本迭代、版本升级所产生的成本应该也不低 。
而当我们面对一个微信小程序的开发需求时 。我们需要考虑什么呢?微信团队提供了开发者工具 。并且规范了开发标准 。前端常见的HTML、CSS变成了微信自定义的WXML、WXSS 。WXML中尽管全部是自定义标签 。但官方文档中都有明确的使用介绍 。相信上手应该是非常容易的;WXSS、JSON和js文件中的写法稍有限制 。但整体相差不多 。在统一了这些标准之后 。作为一个开发者 。你会发现 。自己只要专注写程序就可以了:
当需要调用后端接口时 。调用发起请求API
当需要上传下载时 。调用上传下载API
当需要数据缓存时 。调用本地存储API
引入地图、使用罗盘、调用支付、调用扫码等等功能都可以直接使用
UI库方面 。框架自然带有自家weui库加成
并且在使用这些API时 。你不用再去顾虑浏览器兼容性 。不用担心生产环境中出现不可预料的奇妙BUG 。可见微信小程序的开发成本确实相比以往的web开发低很多 。
微信小程序和HTML5应用有什么区别?

文章插图
第三条是获取系统级权限的不同
微信小程序相对于HTML5 web应用能获得更多的系统权限 。比如网络通信状态、数据缓存能力等 。这些系统级权限都可以和微信小程序无缝衔接 。也就是官方宣称的拥有Native App的流畅性能 。而这一点恰巧是HTML5 web应用经常被诟病的地方 。这也是HTML5的大多应用场景被定位在业务逻辑简单、功能单一的原因 。
第四条便是应用在生产环境的运行流畅度
最容易区分小程序与H5的一点 。打开H5 。实际上是打开一个网页 。而网页需要在浏览器中渲染 。面对复杂的业务逻辑或者丰富的页面交互时页面会卡顿 。
而微信小程序 。直接在微信上运行 。省去了通过浏览器渲染的步骤 。因此 。在微信中使用小程序 。才会比H5流畅很多 。除了首次打开需要几秒的加载时间外 。小程序各个页面的切换、跳转等体验已经媲美原生App 。非常顺畅 。
小程序不能跳转外部链接 。H5没有限制 。
概括来说、小程序相对H5有着开发成本低、功能更丰富、用户体验更佳的优点 。(缺点:微信做了很多限制 。很多东西不能自定义)
以上就是我总结的微信小程序跟HTML5的区别 。微信现在月活9亿 。特别是微信推出大众号今后 。微信的月活也大幅上升 。这就为微信小程序带了十分便利的入口 。以9亿为基数 。奠定了微信小程序的根底 。
微信小程序不是HTML5 。它是根据微信的独立的开发模式 。能过节约人们的开发本钱与开发周期 。当然 。现在小程序也不能彻底替代APP 。今后的发展怎么样 。欢迎持续关注千锋武汉吧!