纯HTML5APP与原生APP有哪些不同?

由于互联网的快速发展,目前很多的企业和开发站长都已经知道htnl5的优势,纷纷的利用html5开发app和网站,事实证明,利用html5进行pc或移动端的开发的确有很多的优势,或许正是看到html5的优势,所以很多的企业都希望开发站长能够利用纯html5语言进行app开发,这样真的好吗?纯htnl5 app开发与原生app之间有哪些不同?具体看天津app开发的阐述:



1、页面切换

试想一下,若引导页或主页面缓存了5个子页面的资源,在跳转到响应的子页面时又会缓存这些子页面的下级页面资源,如此反复必定会严重影响到app的体验效果。那么如何才能知道哪些页面是需要,较多缓存多少页面,什么时候结束哪些页面的生存周期,这些问题都必须要有一个完美的解答,避免在页面较多内容较多的APP中可能会因这些资源分配的问题降低性能。

这时回过头来,看MVVM的数据加载问题,实际上无论是哪个MVVM框架,写过的人都知道管理这种新型代码较重要的就是内存问题,你既要保证代码写的足够优雅,没有任何内存泄露,与此同时还要考虑到页面生存周期结束时,它们的控制器/页面资源是否得到释放,这对全局影响不大,但是若你想用纯H5来开发大型APP,这或许会浪费你很多时间,更重要的是较终的结果你也不一定满意。

2、动画方面

动画展示效果有很多的中,如:侧边栏的滑入滑出、页面切换之间的过场,左侧渐进滑入等等,在html5之下的众多实现方式中都没有办法达到纯原生的性能。通常会有几种不同的选择:css3动画、javascript动画、原生动画。css3动画很消耗性能,尤其是在大面积或过场使用css3动画很容易会降低app的体验度,较好是选择通过框架调用底层的动画,尽可能的避免性能受到影响。

例如:新载入一个页面,调用地层动画时需要考虑两个问题:1)本身资源页面的渲染问题,2)远程数据的获取。即便这些动画响应很快,但大量的css页面会导致渲染卡顿,滑入时可能会有白屏/机器卡顿的现象。为了解决这些性能问题又必须要用到预加载或模拟动画,就算是这样,滑入滑出的动画在低端的安卓机器上存在的问题还是很多,若获取服务端数据处理的方式不合适,势必会家加剧卡顿现象。

3、获取服务端数据

这里获取的数据都是在资源页面异步完成的,因为只有这样才能让这些资源页面完成预加载或渲染,但异步拿到的数据在填入页面时可能会涉及DOM操作,众所周知,DOM操作十分的消耗性能,一旦页面稍大数据稍微复杂一点,频繁的DOM操作会导致明显的闪白。而且较重要的一点是,若页面加载进来之后数据更新的速度太慢,需要等待很长的时间,对用户体验非常不友好。

这个问题若得不到完善的解决,html5 app很难承担大规模数据的页面,在它们之中频繁切换更是难上加难,那么肯定有人也会想到用MVVM的方式,因为相对来说它们获取数据和更新数据的方式更敏捷更科学,但写的过程中又要注意很多H5独有的问题。

4、Android/iOS的区别

许多人都说纯html5 app编写就能编译Android/iOS两种不同的APP,大大降低了企业的成本。然而事实证明,这个观点有点值得怀疑,若你写过这类app应该清楚,它们既不省事,调试企业来也非常繁琐。较简单的例子:Android和iOS在返回上一页的处理方式上就有明显的区别,iOS的顶部bar在全屏下怎样处理,Android机器出现smart bar怎样处理页面的布局,调用底层硬件时怎样区分不同的场景.......你需要写一个又一个机型和系统的判断,然后分别在Android和iOS下调试,较后你却发现这并没有卵用。

总而言之,目前纯html5 app开发技术还非常的年轻,很多的问题还没有得到很好的及诶绝,当然大家也不必担心,随着ES6的推行,硬件发展越来越快,纯H5APP未必没有一席之地。较后天津app开发说一个很少有人会注意到的H5优势——图文混合的排版。正是由于某些复杂多变的CSS样式消耗了性能,而它带来了排版的多样性,能够细致到每一个字宽行高和风格的像素级处理。

声明:文章"纯HTML5APP与原生APP有哪些不同?"为文率科技APP开发公司原创文章,转载请注明出处,谢谢合作!

Html5/微信/网站开发资讯文章推荐阅读