点击注册
点击注册
.
.
 
你的位置:澳门旅游攻略 > 澳门百科 >

澳门百科 原生跟H5为什么有流畅度的差异(中)

以下说明原因:

1、动画

我们现在一般看见的H5页面、APP都比较小,目前的市场,还未曾出现过大型的H5页面或APP。

这是因为H5系统本身有许多不尽理想的层面,导致他的应用在加载动画时,速度慢上许多。要是配合大量的css页面,可能速度快些,但会导致渲染卡顿的情形,并且出现白屏、闪退等状况。高端机或许勉强过得去,但低端机是有机会把动画卡成简报幻灯片的,无论是 CSS3 动画、还是 Canvas 动画,还是 JavaScript 操作 DOM 的动画,都卡。

很多H5制作的游戏,更新后功能多加了一些,系统就经常崩溃。这样的情况或许在一开始是可行,但相对来说发展性更低,对于版图的扩张可能会影响往后商机延伸,因此市面上的大多成功APP都是采用原生来制作的。


2、获取服务端数据

H5的APP,数据获取都是在资源页面上异步完成的,涉及DOM操作,不能与手机内的配置同步,所以对手机来说是消耗性能,并且在突发状况会出现明显的闪白。

不过对于所有app产品而言,实际上最重要的一点,是当h5页面加载进来之后,如果数据更新的速度太慢,就会让页面模板等待很长时间,这样的情况之于用户是非常不友善的体验经历,毕竟总不能每次打开都像浏览器一样等待刷新是吧。其实仔细想想,在生活中我们我们也经常碰到Web(H5)页面突然就不见了,或者一直加载的情形,感受印象是不好的。

3、页面切换

很多Web(H5)版的APP,为了加载所需的动画,就使用许多工具来作为辅助,比如预加载等。这样的作法当然解决了不少问题,在帮助层面来看好像还挺友好的,但事实上当页面开到一定程度的数量,就会触发另一个严重的问题——页面的生存周期。

关于页面生命周期,有两个非常重要的事件:

●DOMContentLoaded:此时浏览器已经完全加载了HTML文件,并且DOM树已经生成好了。但是其他外部资源,如样式文件、图片、字体等并没有加载好,页面文档完全加载并解析完毕之后会触发

●Load:当所有资源加载完成后触发的。此时浏览器已经将所有的资源都加载完毕,可以正确读取页面中的资源。

试想一下,当主页面缓存了5个子页面的资源,在跳转到响应的子页面时又会缓存这些子页面的下级页面资源,如此反覆肯定会占据大量内存导致全部页面都受影响,单一页面Web(H5)版的APP或许很不错,但大型的却往往容易适得其反。


4、Android/iOS的区别

很多人赞颂H5 APP编写一次,就能同时编译Android以及iOS两种不同的APP,这当然是非常美好的。但是有考虑过BUG吗?

譬如我们说兼容问题,先只算官方系统。Android系统的 WebView 一般随 Android 版本更新,每个版本所支持的功能均不同。但在国内环境下,基本不会再更新了,导致有些功能再pc上对应版本的chrome是有的,但到该版本的web view就没有了。

事实证明,当你走到后期需要修改和调整时,只会觉得满满的坑,坑死人啦!像这样开始美好,结局惨败,如此繁琐又复杂的方式,还不如一开始下功夫使用原生去老老实实的开发。

举一个很简单的例子,Android和iOS在返回上一页的处理方式上就有明显的区别,调用底层硬件时怎样区分不同的场景等等。

有些便宜还是不好占著玩儿的;有些亏也不是那么难吃吧。


【菠菜圈专讯】爱尔兰制药商协会(IBA)已经打出了提高该国菠菜税率的计划,称这一举措将导致商店的关闭和广泛的失业。

CghzgVTCK_OAW7oxAA2Ty0bJzhI714.jpg
      

5、更新维护

Web(H5)版的APP,每次内容、功能更新都需大动干戈,所消耗的人工、资金成本不亚于重新开发。



分析告一段落,最后分享一个小故事

早在2010年的时候,乔布斯就预言HTML5将会成为取代Flash的下一波技术浪潮。

从那时候开始, 很多大公司都在推动HTML5的发展,其中以Facebook最为疯狂,誓要利用HTML5的Web App来打破iOS和Android的垄断,于是创造了facebook发展以来最大的失误。

押注于HTML5使得facebook浪费了长达2年的研发投入和精力,而才转向原生应用。

2012年因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站。做出来后,发现这套东西很好用,这就是现在耳熟能详的React JS。

当时还有一个小插曲,时至2010年左右移动应用的浪潮已经席卷了整个互联网界,因为选择了HTML5技术作为底层,其App因其HTML5自身技术的问题导致经常出现Bug。这对Facebook这么大体量的产品而言,必然会受到重创,所以期间因此而差点引发被雅虎收购的命运。

整个事件是否很值得作为前车之鉴呢?告诫广大业者,慎选移动端底层架构!

所以,不要因为一时的便宜而被开发公司忽悠选择的Web(H5)版的APP,性能与原生的差别太大,也许价格方面讨了点甜头,但在后期的维护却是大坑。创业者要在选择开发APP的时候,要留心这个部分。


好啦,现在世界也不流行二分法了,何况是技术呢,总是有个兼容的馀地在,才能进步,于是就有人问了:

混合开发怎么样?

这一块,我下一篇再跟大家细说。