客户端主要有两种选择:一种是基于浏览器HtML5页面的,一种是Native模式的。到底是选择HTML5还是Native, Native 如何解决快速迭代问题?
1.是Native还是HTML5
当前移动端主要还是以Native实现为主,从用户体验角度来考虑,Native的实现要比HTML5更流畅,同时Native还可以基于本地做很多在浏览器里不能做的优化,如大数据的存储、可以定制的通信协议、更方便地保持长连接以及更容易实现的实时消息推送。
当然HTML5也有无法比拟的优势,比如客户端更轻量级、服务端发布更迅速、不需要用户升级版本等。长期来看,移动端是否会像早期PC那样从富客户端转向浏览器呢?笔者觉得未必,理由如下。
,相比HTMLS, Native实现性能优势更好。当前移动端都在追求极致体验,App无疑会比HTMLS有更多的优势;,移动端屏幕较小,基于网页的交互和App相比还有很多限制。最重要的是,不同的商家会主推带有品牌标识的App还是会向统一-的浏览器靠拢?从目前的趋势看,App会是手机端上争夺的重点,所以笔者推测直接基于手机端的浏览器的应用不会成为主流的前端。
2. HTML5的页面优化
HTMLS页面优化一般可以从以下几个地方人手。
第一,CSS内联异步加载。如果页面中有内容要依赖CSS的加载,很多时候就会出现白屏一这其实就是CSS阻塞了加载,CSS出不来就导致看不到首屏。CSS内联加载可以节省异步HTTP请求,CSS内联异步加载后可以大大缓解白屏问题。不过,就算内联以后也要观察异步CSS文件的大小,并且异步之后要观察domReady的时间变化。当然CSS内联也有可能会导致repaint和reflow的问题,并且由于异步内容增大,服务端的性能开销也会增加。
第二,其他的优化。端上的优化已经有一整套的优化方法列表了, 这里介绍一些我们在实践中发现并验证过的一些特别的优化点,如assets 合并、整合页面中inline的JSICSS到外部文件、将iframe改为JSONP调用、背景图合并和将非首屏内容加载改为异步等。
第三,bigpipe首屏加载。2012年的时候,Facebook有一个比较火的技术叫bigpipe,可以提升页面的首屏加载效果,于是我们尝试过采用类似的技术测试首屏的加载效果,
点击链接



