因为客户端WebView的展示需要经过多方才能完成(从后台到前端),所以,本文针对WebView的性能优化涉及到iOS/Android、Web前端、后台服务器等相关方。
WebView性能优化总结:
一个加载网页的过程中,native、网络、后端处理、CPU都会参与,各自都有必要的工作和依赖关系;让他们相互并行处理而不是相互阻塞才可以让网页加载更快:
- WebView初始化慢,可以在初始化同时先请求数据,让后端和网络不要闲着。
- 后端处理慢,可以让服务器分trunk输出,在后端计算的同时前端也加载网络静态资源。
- 脚本执行慢,就让脚本在最后运行,不阻塞页面解析。
- 同时,合理的预加载、预缓存可以让加载速度的瓶颈更小。
- WebView初始化慢,就随时初始化好一个WebView待用。
- DNS和链接慢,想办法复用客户端使用的域名和链接。
- 脚本执行慢,可以把框架代码拆分出来,在请求页面之前就执行好。
针对iOS开发来说,需要了解的是:
1、从性能分析得出结论,WKWebView的效率明显高于UIWebView,所以,优先使用WKWebView。
2、冷启动APP,第一次打开WebView页面的时候,由于会启动浏览器内核,所以,加载时间比较长、消耗内存比较大。但是,之后再打开WebView的时候加载时间和消耗内存会好很多。
参考:来自美团技术团队的博客