问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用H5开发的App和原生App有什么区别?3

发布网友 发布时间:2023-09-12 04:14

我来回答

2个回答

热心网友 时间:2024-12-01 08:44

1.H5的性能很差,一般经常改的地方可以用H5,比如论坛,咨询之类的,而且*也是很大,很多效果是没办法做到的。GUI框架的WebView普遍是这样的。如果一个APP全部由H5来做(不太可能,送审很可能被拒),那么会显得非常卡。

2.用iOS SDK,如果实现热更新是比较麻烦的。对于论坛,咨询这种模块,动不动就改版,做起来比较头疼,用H5就很合适了。尤其在APP跨安卓和iOS的时候,这类模块如果直接用H5,那么就很容易共用。




H5网页App开发和纯原生的App的差距主要聚集在以下几个方面:

1、动画

动画有很多种,比如侧边栏菜单的滑入滑出、元素的响应动画、页面切换之间的过场等等,在H5之下的众多实现方法都没有办法达到纯原生的性能。一般这些的话有几种不同的选择:css3动画、javascript动画、原生动画。

css3动画非常的消耗性能,如果某一个元素用到css3动画可能还看不出来,但大面积或过场使用css3动画会让app低端手机体验非常差。最好的选择一般是通过框架调用底层的动画,但不管怎么样等于在原来的代码上包上了一层,性能还是不可避免的受到影响。

比如在一个新页面的载入上,如果调用底层动画要考虑的问题有两个,一个是本身资源页面的渲染问题,另一个是远程数据的获取。即便是这些动画能够很快的响应,但大量的css页面会导致渲染卡顿,滑入时可能会有白屏/机器卡顿的现象。为了解决这些性能问题又必须要用到预加载或模拟动画。即便是这样,滑入滑出的动画在低端的安卓机器上还是有很多问题,如果获取服务端数据处理的方式不合适,卡顿白屏的现象会更严重。具体看下面的数据获取方式。

2、获取服务端数据

首先要接受的是,这里的数据获取都是在资源页面上异步完成的,因为只有这样才能让这些资源页面完成预加载或者渲染。但是异步拿到的数据在填入页面中时可能会涉及DOM操作,众所周知,DOM操作非常消耗性能,如果页面小还好,页面稍大数据稍微复杂一点,频繁的DOM操作会导致明显的闪白。而且最重要的一点是,如果页面加载进来之后数据更新的速度太慢,也会让页面模板等待很长时间,对用户体验又不友好,总不能每次打开都像浏览器一样等待刷新是吧

这个问题如果没有得到解决,H5开发是很难承担大规模数据的页面,在它们之中频繁切换更是难上加难,那么肯定有人也会想到用MVVM的方式,其实我也写过一些基于MVVM的H5app开发,相对来说它们获取数据和更新数据的方式更敏捷更科学,但写的过程中又要注意很多H5独有的问题,这些问题在下面的页面切换里来讲。

3、页面切换

上面我们看到了几种不错的实现方式,比如预加载和模拟动画,甚至有批量的预加载,批量的截图模拟动画等等,虽然看起来很友好解决了不少问题,但事实上如果页面足够多就会引发另一个问题——页面的生存周期。

试想一下,如果引导页或者主页面缓存了5个子页面的资源,在跳转到响应的子页面时又会缓存这些子页面的下级页面资源,如此反复肯定会占据大量内存使APP的体验下降。那么怎么知道那些页面是需要的,最多缓存多少页面,什么时候结束哪些页面的生存周期呢?在我用过的很多H5APP的框架里都没有对这些问题有一个完美的解答,因此在页面较多内容较多的app开发中可能会因这些资源分配的问题降低性能。

这时候我们回过头来再看看MVVM的数据加载问题,实际上不管哪个MVVM框架,写过的人都知道管理这种新型的前端代码最重要的问题是内存的问题,你既要保证代码写的足够优雅没有任何内存泄露问题,也要考虑到在页面生存周期结束时它们的控制器/页面资源是否得到释放,这对全局有没有什么影响,在多个请求时也要合理的分配资源,甚至是复用这些父级页面传过来的缓存资源等等。较小的APP可能并不会有这些问题,如果你想用纯H5来开发大型app,这很可能会浪费你很多时间——而且结果还不会让你满意。

4、Android/iOS的区别

很多人都说纯H5app开发一次编写就能编译Android/iOS两种不同的APP,大大降低了成本。实际上这个观点本身就是值得怀疑的,如果你写过这类APP就能明白我在说什么,它们既不省事,又存在很多BUG,调试时尤其繁琐。举一个很简单的例子,Android和iOS在返回上一页的处理方式上就有明显的区别,iOS的顶部bar在全屏下怎样处理,Android机器出现smart bar怎样处理页面的布局,调用底层硬件时怎样区分不同的场景等等,你需要写一个又一个机型和系统的判断,然后分别在Android和iOS下调试,最后你却发现这并没有卵用,累的要死却什么没学到,只有一堆不知道什么时候会过时的经验。

现在做H5混合APP开发的人很多,但是纯H5却很年轻,很多问题都没有很好的解决,这几个是我在做这些APP时考虑最多的问题。最后说一个很少人注意到的H5优势,大家大谈H5APP时都是快速开发、低成本、多平台等等,但我却觉得它和很多APP开发方式相比有一个不同之处——图文混合的排版。正是这些复杂多变的CSS样式消耗了性能,但是它带来了排版的多样性,能够细致到每一个字宽行高和风格的像素级处理,才是H5的优异之处。

热心网友 时间:2024-12-01 08:44

原生是基于他们自己平台的语言开发,比如ios和安卓是2个平台,也就是要开发2份app。h5的开发完一个,两个系统可以兼容(调试测试好)就可以,所以h5比原生app要便宜。   h5的app,加载速度不如原生,受网络影响大,体验度偏低,开发成本一般。   原生app,加载速度快,受网络影响较小,体验度很高,开发成本偏高。   很多市面上的h5虽然功能有了,效果却差了很大,要知道一款好的app光ui设计上就会比普通能凑合用的app高出几倍,也就是说正常二十万左右的appui可能也仅仅占了一万两万,甚至有的公司为了赚钱ui都是修改之前的成品app。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小米摄像头离线人在外地怎么办 win11如何固定电脑桌面图标 QQ三国的当代杰出少年是怎么得的? 三国人物风云榜的作者简介 三国人物风云榜作者简介 三国人物风云榜目录 三国人物风云榜内容提要 w10电脑不动黑屏w10系统开机黑屏只有鼠标箭头怎么回事 ...FRAMEWORK中的Action, Control, Resource, Model到底是什么关系... windframework特点 四年级作文,xx我想对您说396 谁谁谁我想对你说作文500字急急急急急急急急急急急急急急急急...262 想办一个联通3G的手机号、现在用的这个移动手机号想只用来打电话发短信... 离徐州最近的方特是郑州,泰安还是济南方特?12 我只有,没有手机号码也忘记密码了,请问微信该怎么登录? 微信帐户怎么提现260 我只有,没有手机号码也忘记密码了,请问微信该怎么登录? 我只有,没有手机号码也忘记密码了,请问微信该怎么登录? 微信账户已经提现过后。微信账户被冻结。那提现的钱还会到账银行...4 我只有,没有手机号码也忘记密码了,请问微信该怎么登录? XX,我想对你说作文450到500字左右。67 郑和我想对你说作文250个字9 如何注册第二个? 快手删除后想恢复原来账号怎么办 入职填父母手机号上了一天班不想去上了会打电话给家长嘛 求一篇(不做作业的同学,我想对你说)的作文。急急急急急急!!...92 XX我想对你说400字作文,急急急!!!!!!!!76 last but not least和last but not least有什么区别? 我想在美团网买东西,想用一个手机获得优惠,怎样让美团呀不显示“此... 描写班级特点的对联 就是描写出班级积极向上、团结、大家关系都很好。班... 喜欢手机靓号想买,怎么才能买到手机靓号 现有一个北京动感地带手机号。因经常出差,想着弄一个全国接听免费的手机... 我想知道这个手机号在哪 我捡了个手机号码想自己用怎么办? 从兰州站到西北民族大学大学榆中校区怎么走 ?有没有公交车是直达的... 请问怎么用photoshop制作出一支箭呢? 我的手机号码不想用了,可又登计了身份证、要不要到移动公司注销啊... h5开发具体是做什么的?1 html5和前端有什么区别?17 距离徐州比较近的方特乐园是哪里的5 徐州到泰安方特高速怎么走 徐州开车到泰安方特具体路线4 photoshop中如何快速绘制出一个箭头 ps如何画箭头,如下图 我的手机号是鄂尔多斯的,移动,我现在暂时住在呼市,不想换手机号,我现在... 去年我用身份证办的手机号码没取消,号码一年多没用了,如果我在想用身份... 天冷的时候多吃不加一滴水焖的什么菜,滋补又暖身? 辉翔轮胎还是朝阳轮胎耐用 安装密码忘了,绑定的手机号已经换了。想更改绑定手机号 辉翔轮胎是杂牌吗