
IOS
H5性能超差的,经常改的地方像论坛、咨询啥的可以用,不过限制也大,好多效果做不了。GUI框架的WebView基本都这样。要是一个APP全用H5做(不太可能,送审可能被拒),就会很卡。用
IOS SDK搞热更新挺麻烦的。论坛、咨询这种模块老改版,做起来头疼,用H5就挺合适。特别是APP跨
安卓和
IOS时,这类模块直接用H5很容易共用。H5网页App开发和纯原生App的差距主要在下面这些方面:1. 动画动画有不少种类,像侧边栏菜单滑入滑出、元素响应动画、页面切换过场啥的,H5的好多实现方法在性能上都比不上纯原生的。一般有这么几种选择:
CSS3动画、
Javascript动画、原生动画。
CSS3动画特耗性能,一个元素用可能还不明显,大面积或者过场用的话,低端
手机上app体验就很差。最好是通过框架调用底层动画,但不管咋说都是在原来代码上加了一层,性能还是会受影响。就好比新页面载入的时候,如果调用底层动画得考虑两个问题,一个是资源页面的渲染,另一个是远程数据获取。就算动画响应快,大量
CSS页面也会让渲染卡顿,滑入的时候可能白屏或者机器卡顿。为解决这些性能问题得用预加载或者模拟动画。可就算这样,低端
安卓机上滑入滑出动画还是有不少问题,要是获取服务端数据的方式不合适,卡顿白屏会更严重,具体得看下面的数据获取方式。2. 获取服务端数据首先得知道,这里的数据获取都是在资源页面异步完成的,只有这样资源页面才能预加载或者渲染。但是异步拿到的数据填到页面里可能会涉及DOM操作,大家都知道,DOM操作很耗性能,页面小还好,页面大一点数据复杂点,频繁DOM操作就会明显闪白。而且关键是,如果页面加载后数据更新太慢,页面模板就得等很久,用户体验不好,总不能每次打开都像浏览器一样等刷新吧。这个问题不解决,H5开发很难承担大规模数据页面,在这些页面之间频繁切换。