第2页
自我介绍
Shinehuang(黄俊涛) 2011年加入QQ空间 曾负责朋友网web,全民K歌app 现任QQ空间H5工程师 专注于Node.js以及Hybrid App开发
第3页
QQ空间Hybrid架构
By Shinehuang(黄俊涛)
第5页
Native > H5:
快
第7页
Native > H5:
稳定
第9页
解决方案
离线包+预加载?
第10页
思考
1. 首次进入加速 2. 二次进入秒开
第11页
传统H5加载流程
第12页
H5加载优化:Max(T1, T2)
第13页
H5加载优化: http->socket
第14页
如何加速二次进入的显示速度?
第15页
Html Cache
第16页
升级版etag
Etag sha1(htmlBuffer)
Cache-Offline true :响应内容进入离线,刷新webview store:响应内容进入离线,如果weview已经存在内容则不刷新 false: 响应内容不进入离线,刷新webview,并清掉本地缓存 无: 响应内容不进入离线,刷新webview,并清掉本地缓存
第17页
加载优化+高速通道+离线缓存
第19页
测速对比
第20页
离线缓存率 还可以做更多?
第21页
Html页面结构
第22页
H5的增量更新
第23页
H5的增量更新
第24页
H5的增量更新
还可以做更多?
第25页
新的挑战
提高页面可用率 静态资源缓存复用
第26页
Html加载JS方法
第28页
H5离线操作
第29页
异步读写接口接入socket 网络层托管闭环
第31页
Native > H5:
3. 标准组件,基础能力 4. 操作流畅度,灵敏度 5. 内存,性能指标
第32页
React Native
第33页
React Native改造场景
第34页
React Native自定义组件
第35页
React Native自定义组件
第36页
React Native组件性能:<listview>
removeClippedSubviews
第37页
React Native组件性能:<listview>
内存无限制增长
第38页
React Native组件性能:<listview>
Android:RecyclerView
第39页
React Native组件性能:<listview>
手动回收
第40页
React Native组件性能:<listview>
第41页
React Native启动加速
1. 预加载上下文+常驻 2. 内置bundle,异步更新 3. 预执行jsbundle 4. 数据缓存 5. 首屏结构优化
第42页
React Native启动加速
第43页
React Native框架Crash
1. AssertError
2. view property crash (15,972) Error while updating property 'text' in shadow node of type: RCTRawText (11,621) Error while updating property 'height' in shadow node of type: RCTView
3. imageLoader crash
第44页
React Native版本兼容性
Android4.1以下 Ios7以下
第46页
Web前端思考
第47页
THANK YOU
Any question?