tmallfe / tmallfe.github.io

天猫前端
http://tmallfe.github.io
3.93k stars 508 forks source link

Native和Web融合 #11

Open luics opened 9 years ago

luics commented 9 years ago

详见 Native和Web融合 @鬼道 2015.04 @QCon北京2015

“Native 和 Web 融合”已经在阿里生根发芽。以前提得较多的是 Hybrid,Hybrid 是融合的一面,更多是指 Web 融合 Native 能力,更窄一点指的就是 Hybrid API(类 Phonegap);另一面是 Native 融合 Web 的能力,尤其是 Web 的发布能力和大规模协作的能力。作者尝试理清 Native 和 Web 的亮点和痛点,借鉴对方亮点解决自身的痛点,并给出淘系 App 在这些方面的实践。

Native 诸多亮点中,流畅体验和系统调用是最多被提及的。Native 的流畅体验体现在页面滚动和动画的流畅性,背后是更好的内存管理和更接近原生的性能;Web 痛点集中在资源首次下载、长页面内存溢出和滚动性能。Native 有丰富的系统 API 可供调用灵活度较高,Web 痛点在于 W3C 标准太慢,有限的设备访问能力,API 兼容性问题较严重。

Web 最大的亮点是发布能力,合适的缓存机制下一天更新率可超过 99%,iOS 能达到一周更新率 60%-80%,Android 同样的更新率要一个月甚至更长。iOS Hotpatch 可用于修复紧急问题,受限商店政策难以走得更远,Android 自由度会更大。Mobile Web 的协作能力底层来自 Webkit,上层有 html/js/css 控制页面的结构/行为/样式 URI 连接不同的资源,这样的机制可以被 Native 借鉴,构建 Native 的分层架构。