Webkit客户端进程解析
来源:互联网 发布:如何经营淘宝网店 编辑:程序博客网 时间:2024/06/06 18:42
最近看了很多关于Webkit原理的博客和资料,大都是介绍整体构架和诸如资源加载、HTML解析、Rendering等服务端进程的原理。
但是新版本的Webkit(Webkit2)是一个多进程模型,而不是过去的单进程模型。
这些进程分为两类,分别是:服务端(WebProcess)和客户端(UIProcess)
客户端资料的缺少使得我对客户端进程产生了兴趣,经过对代码的研究,找出了一点门道,这里分享给大家。
首先介绍一下两个进程的关系
顾名思义,服务端就是完成客户端发来的请求并回应,而客户端就是资源或功能的请求者,只不过他们不像Web服务器和浏览器一样处于不同的机器(一般都这样),他们只是两个进程而已。这样做的好处是使得两部分隔离,就算服务进程宕了也不影响客户进程,可以重新启动,反之亦然,同时多个客户进程能够共享同一个服务进程,减少了资源开销。两个进程间的通信是通过消息队列实现的,客户端发送消息到服务端的消息队列,服务端在空闲时取出一条消息并处理,这样的设计可以减少多进程同步的开销。在Windows下他们是通过命名管道来收发消息的。
客户端大部分功能的实现都采用了代理模式,即用户不直接使用消息机制和服务端通信,而是通过客户端的代理进行。我们如果看到代码中有些类名以Proxy结尾,说明这个类就是个代理类,用户通过调用他提供的方法就能实现功能,而在代理内部实现则是向服务端发出对应的消息而真正实现所需的功能。
下面介绍一个典型的调用过程:创建一个WebView
我们使用API WKViewCreate来创建一个WebView并得到它的引用WebViewRef
::WKViewCreate()
- Webkit客户端进程解析
- [WebKit]WebKit2多进程机制的解析
- [WebKit]WebKit2多进程机制的解析
- Webkit之多进程分析
- WebKit之多进程模型
- webkit html 解析流程
- [WebKit]WebKit2 API解析
- [WebKit]WebKit2 API解析
- [WebKit] JavaScriptCore解析
- WebKit之video解析
- [WebKit] JavaScriptCore解析
- WebKit之多进程模型2
- webkit的loader结构解析
- webkit的loader结构解析
- webkit的CachedImage管理解析
- 爬虫-网页解析之webkit
- WebKit中的html词法解析
- webkit 绘制部分代码解析
- 网页输出产品列表(配置XML文件)
- Ubuntu下为firefox&chrome安装Java插件
- c# 去掉Form窗口关闭按钮,保留窗体栏
- 街头智慧:罗杰斯的投资与人生
- Win8下管理员权限运行脚本
- Webkit客户端进程解析
- DateTimePicker
- Linux(Fedora和Ubuntu等)下android真机调试
- API Guides/Input Controls
- sql2008 分区 及安装
- C#常用控件缩写
- linux驱动程序调试常用方法
- 走进WebKit——打开新Tab(一)
- Ubuntu Linux中连接Android真机调试