H5 和小程序的区别

什么是小程序?

从“微信之父” 张小龙的定义里,我们可以了解到,小程序其实就是内嵌在微信,不需要安装和卸载的一种新应用形态。它具备的两个强属性:提高效率,用完即走!因此小程序的设计以轻便、快捷为原则,鼓励用户“即用即走”!

注意:除了微信小程序,还有百度小程序、微信小程序、支付宝小程序、抖音小程序,都是每个平台自己开发的,都是有针对性平台的应用程序。以为目前主流的就是微信小程序,所以下文中的小程序都默认指代“微信小程序”!

小程序因为内嵌再微信里,所以它的运行只能依赖微信客户端,也就是说只能在微信里打开。

什么是 H5?

H5,也就是“HTML5”,指“HTML”的第 5 个版本。众所周知“HTML”是”超文本标记语言”,是一门描述网页的标准语言,所以 HTML5 也是一种网页技术,而且是更高级的网页技术,包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

所以,H5 本质上可以理解为是一个网页!

既然 H5 是网页,那么依赖的外壳主要是浏览器,因此只要有浏览器,就可以使用。比如手机内置的浏览器,APP 的 web-view 组件,以及小程序提供的 web-view 组件,都可以打开 H5 页面。

小程序和 H5 的区别

其实从以上的概念的解释里我们已经能看出来一些基本的区别了。那么接下来,我们就从原理和应用等方面,来分别对比一下小程序和 H5 的不同之处。

一、从开发的角度

H5 和小程序的开发工具就非常不同,小程序都是依赖于微信客户端的,所以相对来说开发工具没有 H5 那么多;

而且两者的开发语言也都是不同的,微信小程序有自己的一套标签与样式语言,与标准的 H5 语言是不一样的;而且还独立了很多的原生 app 的组件,所以它在组件封装上面与 H5 也都是有所不同的。

因此,开发一个 H5,需要从开发工具、前端框架、模块管理工具、任务管理工具,还有 UI 库选择、接口调用工具、浏览器兼容性等等,都需要考虑周到。尽管大多数开发者面对这些工具时,都有了自己的配置模板,但成本依然不低!

微信小程序的开发使用了改自 js、CSS、HTML 的语言,同时提供了各种自有的组件和 API,是一套为微信量身打造的自定义的语法。因此,不用担心浏览器的兼容性,不用担心莫名其妙的 bug,而且在微信中小程序的使用体验比普通 H5 更加顺畅、快捷。

所以,小程序的开发成本比以往的 HTML5 开发的 Web 成本低很多。

二、从运行环境来看

客户端运行环境:

H5 因为是网页,所以运行环境主要是浏览器;
微信小程序运行环境是属于计算机程序,配合自己定义的开发语言标准,大幅提升了小程序的流畅度和性能。

服务器配置:

因为小程序的性能会 H5 高一些,所以服务器的配置要求上来说,小程序的要求要比 H5 更高一些。

三、系统权限

因为微信能获取到更多的系统权限,如网络通信状态、数据缓存能力等,这些系统级权限都能与微信小程序无缝衔接,这也就是官方宣称的微信小程序能够拥有 Native App(原生 APP)的流畅性能。

而 H5 Web 应用对系统本身的权限的获取则相对少了很多,这一点恰巧是 H5 Web 应用经常被诟病的地方。也因此,H5 的大多数应用被圈定在业务逻辑简单、功能单一的范围上。

四、用户体验

1)性能体验

我们在打开一个 H5 页面的时候,实际上就是打开一个 Web 网页,之前在 PC 上浏览网页没区别,每次要请求各种图片样式资源,在浏览器内核里渲染,这个过程叫做加载,无论加载的时间的长短,都会给用户一种”卡“或者“不灵敏”的感觉,体验是会比较差一些的;

而小程序是微信内的云端应用,通过 WebSocket 双向通信(保证无需刷新即时通信)、本地缓存(一旦首次打开小程序可以直接缓存很多资源和图片,降低与服务器交互延时)以及微信底层技术优化实现了小程序接近原生 APP 的体验。

所以在使用小程序的时候,同等网络条件下几乎不用等待,可以像操作普通 app 一样流畅。

小程序的优越性体现在既保留了 H5 开发的便利和灵活性,又可以达到媲美 Native 体验。

2) 视觉体验

H5 的动画效果更丰富,自由度更高一些,功能更强

五、使用场景

1)打开的方式:就如上面概念里提到的,小程序只能在微信里打开,而 H5 页面可以借助微信的环境下扫码或点击链接打开在任何浏览器里打开,所以,如果产品需要通过短信通知用户带上访问地址,就无法用小程序实现了;而 H5 可以在短信正文中直接用手机内置浏览器打开。

2)分享的方式:由于微信本身的策略的限制,H5 在微信里可以直接分享到朋友圈;而小程序就只能生成带小程序码的图片发到朋友圈,不如 H5 便捷;但是对于分享到好友或群,小程序提供了卡片式的分享界面,信息多而且看起来很高端,这个效果 H5 是无法做到。

3)支付能力:因为小程序是内嵌在微信里的,所以支付只支持微信支付;而 H5 里可以选择使用其他支付平台提供的支付方式,因此 H5 的支付方式更加的多样化。

**4)导流量功能:**用户都在微信上,愿意花钱的用户也在微信上那我把我的服务也做到微信上就可以获取更多客户了;小程序依附于微信,配合微信 11 亿用户的社交网络,越来越开发者选择微信小程序的技术的。

据小程序团队透露,目前已经 50 万 + 的开发者在从事实际的开发,小程序已经成为移动互联网领域“事实”的标准。伴随着这种趋势,阿里、百度分别在 2017 年的 8 月和 2018 年的 3 月启动了自己的小程序项目,围绕着支付宝和手机百度 APP 几个超级 APP 在移动互联网领域再次攻城略地。小程序已然成为近几年最炙手可热“现象级”技术。

5)追踪用户行为: 小程序还有一个优势,就是通过小程序的分享转发,每一次谁转发了,到了哪里,谁点开看了这些信息我们都是可以知道的,通过此可以知道用户和身边朋友对品牌的喜好。这个信息是过去 APP 电商、PC 互联网电商做不到的,基于社群化的分享和交流可以知道社群消费力是怎么样的情况,喜欢什么样的品牌,什么样的方式更合适。通过这样的信息收集背后有算法可以比较精确地推荐计算,这些东西的确是在 APP 上、H5 上做不到的。

总结

综上所述,两者各有千秋,没有绝对的优势和劣势,只有更加适合的使用场景。所以根据自己产品的需求和目的,去选择最适合自己的方式即可。

不过根据预测,未来的应用的主流趋势可能是像微信、QQ、微博、支付宝、淘宝、手游这样的功能强大且高频次使用的 APP 会保留在手机上,诸如外卖、团购、出行等及时性功能的软件会被移植到微信或支付宝这样的平台上作为小程序的形式存在。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末领取】


     【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图+全套资料】


一、Python编程入门到精通


二、接口自动化项目实战 

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具


八、JMeter性能测试 

九、总结(文末尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/73172.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微服务02-docker

1、Docker架构 1.1 镜像和容器 Docker中有几个重要的概念: 镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。Docker镜像是用于创建 Docker 容器的模板 。就像面向对象编程中的类。 容器(Container):镜像中的应用程序运…

02:STM32--EXTI外部中断

目录 一:中断 1:简历 2:AFIO 3:EXTI ​编辑 4:NVIC基本结构 5:使用步骤 二:中断的应用 A:对外式红外传感计数器 1:连接图​编辑 2:函数介绍 3:硬件介绍 4:计数代码 B;旋转编码计数器 1:连接图 2:硬件介绍 3:旋转编码器代码: 一:中断 1:简历 中断:在主程…

OpenCV基本操作——图像的基础操作

目录 图像的IO操作读取图像显示图像保存图像 绘制几何图形绘制直线绘制圆形绘制矩形向图像中添加文字效果展示 获取并修改图像中的像素点获取图像的属性图像通道的拆分与合并色彩空间的改变 图像的IO操作 读取图像 cv2.imread()import numpy as np import cv2 imgcv2.imread(…

【Java从0到1学习】08 String类

1. 概述 字符串是由多个字符组成的一串数据(字符序列),字符串可以看成是字符数组。 在实际开发中,字符串的操作是最常见的操作,没有之一。而Java没有内置的字符串类型,所以,就在Java类库中提供了一个类String 供我们…

Python爬虫:单线程、多线程、多进程

前言 在使用爬虫爬取数据的时候,当需要爬取的数据量比较大,且急需很快获取到数据的时候,可以考虑将单线程的爬虫写成多线程的爬虫。下面来学习一些它的基础知识和代码编写方法。 一、进程和线程 进程可以理解为是正在运行的程序的实例。进…

jvs-rules API数据源配置说明(含配置APIdemo视频)

在JVS中,多数据源支持多种形态的数据接入,其中API是企业生产过程中常见的数据形态。使用数据源的集成配置,以统一的方式管理和集成多个API的数据。这些平台通常提供各种数据转换和处理功能,使得从不同数据源获取和处理数据变得更加…

搭建一个能与大家分享的旅游相册网站——“cpolar内网穿透”

如何用piwigo与cpolar结合共同搭建一个能分享的旅行相册网站 文章目录 如何用piwigo与cpolar结合共同搭建一个能分享的旅行相册网站前言1. 使用piwigo这款开源的图片管理软件2. 需要将piwigi网页复制到phpstudy3. “开始安装”进入自动安装程序4. 创建新相册5. 创建一条空白数据…

Spring Gateway+Security+OAuth2+RBAC 实现SSO统一认证平台

背景:新项目准备用SSO来整合之前多个项目的登录和权限,同时引入网关来做后续的服务限流之类的操作,所以搭建了下面这个系统雏形。 关键词:Spring Gateway, Spring Security, JWT, OAuth2, Nacos, Redis, Danymic datasource, Jav…

ansible剧本之role角色模块

role角色 一:Roles 模块1.roles 的目录结构:2.roles 内各目录含义解释3.在一个 playbook 中使用 roles 的步骤:(1)创建以 roles 命名的目录(2)创建全局变量目录(可选)&am…

Java进阶-Oracle(二十一)(2)

🌻🌻 目录 一、Oracle 数据库的操作(DDL DML DQL DCL TPL)1.1 标识符、关键字、函数等1.1.1 数值类型:1.1.2 字符串类型:1.1.3 日期类型1.1.4 大的数据类型--适合保存更多的数据 1.2 运算符1.3 函数---预定义函数、自定义函数&…

户外组网摆脱布线困扰,工业5G网关实现无人值守、远程实时监控

在物联网通信技术发达的2023,网络覆盖对所及之处的全面覆盖,科技发展的促使下很多高危户外场景也在思考如何利用无线技术提高人员安全及现场无人化管理。 煤矿是我们国家不可缺少的重要能源,其开采过程的危险系数也是众所皆知的,…

【Linux】线程的概念以及与进程的区别

目录 背景知识 什么是线程? 进程和线程的区别 线程的优缺点 背景知识 在了解线程前,我们要首先知道,OS是可以做到让进程进行细粒度划分的! 比如我们所说的进程地址空间中的堆区,它在进程PCB中的mm_structz中有一个start和…

深度学习关键要素:数据集汇总与分享

引言 在深度学习的应用中,数据被认为是最重要的因素之一。因此,选择一个好的数据集对于深度学习的成功至关重要。在选择数据集时,不仅需要关注数据量的大小、多样性以及质量,还要考虑数据集是否代表了所研究问题的真实情况。本文…

SpringBoot对接OpenAI

SpringBoot对接OpenAI 随着人工智能技术的飞速发展,越来越多的开发者希望将智能功能集成到自己的应用中,以提升用户体验和应用的功能。OpenAI作为一家领先的人工智能公司,提供了许多先进的自然语言处理和语言生成模型,其中包括深…

IDEA 设置字体大小无效

设置字体大小,一般都是从file>settings>editor>font>Size里设置,一般都有效。 但是,如果是更换了主体,则需要从主体颜色菜单那里这是,你看这个页面,上面黄色三角也提示你了,要去颜色…

5.内置构造函数

在JavaScript中最主要的数据类型有6种: 1.基本数据类型: 字符串、数值、布尔、undefined、 null 2.引用类型:对象 但是,我们会发现有些特殊情况: //普通字符串 const str andy console.1og(str.length) // 4其实字符串、数值、布尔、等基本类型也都有…

易服客工作室:WordPress 6.3 Lionel发布

WordPress 6.3 Lionel已经发布,它以美国著名爵士乐艺术家莱昂内尔汉普顿 (Lionel Hampton)的名字命名。汉普顿是一位多产的爵士颤音琴演奏家、钢琴家和打击乐演奏家,因与查尔斯明格斯、昆西琼斯等伟大人物合作以及作为同名莱昂内尔汉普顿管弦乐团的乐队领…

【ARM Cache 系列文章 9 -- ARM big.LITTLE技术】

文章目录 big.LITTLE 技术背景big.LITTLE 技术详解big.LITTLE 硬件要求 big.LITTLE 软件模型CPU MigrationGlobal Task SchedulingGlobal Task Scheduling比CPU Migration的优势 转自:https://zhuanlan.zhihu.com/p/630981648 如有侵权,请联系删除 big.L…

C++ 字符串类 string

文章目录 前言一、string 类型概括二、字符串流总结 前言 在C中,字符串是一种常见的数据类型,用于存储和操作文本数据。C标准库中提供了std::string类,它是一个功能强大的字符串类,提供了丰富的方法和操作符,使我们能…

香港大学余涛组推出开源XLANG Agent!支持三种Agent模式

作者 |小戏、ZenMoore 一个新的未来又逐渐开始从理论走向现实走到我们身边了。 语言的意义在于使用,而从 ChatGPT 以来这些大规模语言模型的意义,也必然绝不止于 Chat,在四个月前,我们介绍了清华大学关于工具学习的综述《清华发布…