IOS内webview响应速度优化
2017-10-20 本文已影响23人
西域小码
目前发现IOS咨询详情页响应时间不稳定, 由于缺乏统计数据,从人为观测来看, 平常响应时间为将近2s, 如果出现网络不好的情况, 可能出现较长时间的响应, 针对这种情况,现提出以下方案, 对响应时间做优化:
首先分析详情页
从详情页的所有请求来看, 所有的详情页请求流程如下
image.png通过分析可以看出, 所有的咨询详情页都有一个重复的请求, 所有的详情页都需要先请求模板, 加载静态css和js资源, 然后才是发送数据请求, 请求个性化内容.
然后我们来分析页面的加载渲染过程:
通过分析我们看到ssa.js的加载执行,阻塞了页面的加载渲染, 这个js通过了解是用来做埋点的,所以我们要针对页面代码做一些优化.
由于缺乏数据统计, 我们从app其他数据接口的平均响应时间来判断, 页面内的数据接口请求时间大概为500ms左右,如果我们追求极致的响应效果, 以及99%的可用性, 可以做一些详情页数据请求的优化.
因此, 现在的优化建议为:
将阻塞页面加载渲染的ssa.js移动到页面底部加载,使页面尽快的显示出内容
将html模板和css/js静态资源保存在app磁盘, app直接打开本地html,减少不必要的网络请求
在咨询列表页异步请求详情页接口, 然后将接口内容传递到html中, 以求达到咨询页秒开的效果
从测试版本的优化效果来看, 页面整体响应速度在100-200ms左右, 有了巨大的提升, 但是也同时引入了一个问题, 静态资源缓存到app磁盘, 如果有文件变化时, 如果不能做到动态更新, 那么就必须跟app一起发版, 关于这部分的内容, 后续将有解决方案