因为移动互联网特别火爆,很多企业公司都想开发一个属于自己的app,但是因为原生app开发的成本比较高,而且后期维护比较困难,这些开发成本和后期维护成本对于个人创业者来说或者初期创业公司来说是玩不起的,所以就寻求一种方式既可以低成本,也可以快速开发移动应用,那么web app是最好的选择!
web app是用HTML5编写的移动web运用,依赖于浏览器(微信浏览器、qq浏览器),可以不加修改,直接运行在Android、iOS、pc端。看起来像是一个app,其实就是给web站变异打包了个app壳,可以发布到各个平台上,比如:安卓、iOS、黑莓、win phone等等。
但是web app与原生app相比有几点不足
-
Web基于DOM,而DOM很慢。浏览器打开网页时,需要解析文档,在内存中生成DOM结构,如果遇到复杂的文档,这个过程是很慢的。可以想象一下,如果网页上有上万个、甚至几十万个形状(不管是图片或CSS),生成DOM需要多久?更不要提与其中某一个形状互动了。
-
DOM拖慢JavaScript。所有的DOM操作都是同步的,会堵塞浏览器。JavaScript 操作 DOM 时,必须等前一个操作结束,才能执行后一个操作。只要一个操作有卡顿,整个网页就会短暂失去响应。浏览器重绘网页的频率是60FPS(即16毫秒/帧),JavaScript 做不到在16毫秒内完成 DOM 操作,因此产生了跳帧。用户体验上的不流畅、不连贯就源于此。
-
虽然现在浏览器也支持多线程,比如JS解析在一个线程,渲染在一个线程,但一般是按照先解析再渲染再执行 JS 这样的顺序执行的。
-
在Android早期的版本中,webview的性能很差
所以web app还有很大的发展空间,未来指不定是它的天下。