24期_iOS_初始WKWebView
2023-08-25 本文已影响0人
萧修
先下载:WkKit源码
本文从WKWebView基本概念、介绍三大进程关系
概述
WKWebView是一个多进程组件,NetWork、UI Render都在独立的进程中完成。
由于WkWebView和App不在一个进程,如果WKWebView进程崩溃并不会导致应用崩溃,仅仅是页面白屏等异常。页面的载入,渲染等消耗内存和性能操作都在WKWebView的进程处理,处理完将结果交给app进程用于显示,所以app进程的消耗会小很多。
WebKit多进程机制
在iOS系统中,通常一个应用对应一个进程,但是在Webkit发展过程中,基于稳定性和安全性考虑,引入多进程概念,避免单一界面的异常影响整体app运行
- UIProcess:应用程序所在进程,WKWebView代码和WebKit框架已经加载到你的进程空间
- WebContent:又称Webprocess,JS和DOM内存分配所在位置,即网页内容和JS执行所处进程
- Network Process:负责发出与Web请求关联的基础网络请求(无论多WKWebView还是单WKWebView,都只有唯一的NetPro进程,便于网络的管理)
- Storage Process:用于数据库和服务工作者的存储
三大进程的关系
Net:主要负责网络请求加载,也是用NSURLSession发起管理网络
Web:负责界面资源,前进后退,界面资源解析渲染
UIProcess:负责WebP交互,可进行webView功能配置