webview综述
2024-10-21 02:48:27
nWebView 是webkit最核心的一个view,WebView管理WebFrameView和WebFrame之间的交互,一个WebView对象绑定一个window,并且要求MainFrame加载url,一个WebPage对应一个Window.
WebView
n它对应的是根window。
n它负责处理外部所有消息,并转发给相关模块。
n它负责mainFrame和历史记录的管理工作。
n¨
WebFrame
nFrame的管理者
n负责资源加载和反馈处理
¨临时数据资源(provisional data source)和确认数据资源(Committed Data Sources)
¨WebKit提交请求是异步响应的。在发送请求到收到数据的过程,Webkit会创建一个临时数据资源(provisional data source),这个资源并不知道是否能正确接收数据,所以是临时的。当这个临时数据资源变成有效时,WebFrame才会有真正的数据资源。开始WebFrame并没有数据资源(data source),只有一个空白页显示。
¨WebFrame收到第一个字节数据,Data Source就变确认数据资源(Committed Data Sources)
¨了。如果临时数据资源(provisional data source)有错误,就不会变成确认数据资源(Committed Data Sources)。
¨当数据资源变成确认的(committed)状态,WebFrame将创建相应的document representation 和document view 。
WebView
n它对应的是根window。
n它负责处理外部所有消息,并转发给相关模块。
n它负责mainFrame和历史记录的管理工作。
n¨
WebFrame
nFrame的管理者
n负责资源加载和反馈处理
¨临时数据资源(provisional data source)和确认数据资源(Committed Data Sources)
¨WebKit提交请求是异步响应的。在发送请求到收到数据的过程,Webkit会创建一个临时数据资源(provisional data source),这个资源并不知道是否能正确接收数据,所以是临时的。当这个临时数据资源变成有效时,WebFrame才会有真正的数据资源。开始WebFrame并没有数据资源(data source),只有一个空白页显示。
¨WebFrame收到第一个字节数据,Data Source就变确认数据资源(Committed Data Sources)
¨了。如果临时数据资源(provisional data source)有错误,就不会变成确认数据资源(Committed Data Sources)。
¨当数据资源变成确认的(committed)状态,WebFrame将创建相应的document representation 和document view 。
浏览器的分层结构
nWebKit上层组织应用
nWebCore
¨Page与外框相关的内容(Frame,Page,History,Focus,Window)
¨Loader加载资源及Cache
¨HTML-DOM HTML内容及解析
¨DOM- DOM CORE内容
¨XML- XML内容及解析
¨Render-排版功能
¨CSS-DOM CSS内容
¨Binding-DOM与JavascriptCore绑定的功能
¨Editing-所有与编辑相关的功能
nJavascriptCore-javascript引擎
¨API-基本javascript功能
¨Binding与其它功能绑定的功能,如:DOM,C,JNI
¨DerviedSource自动产生的代码
¨ForwordHeads头文件,无实际意义
¨PCRE-Perl-Compatible Regular Expressions (正则表达式函数库(Perl 兼容))
¨KJS-Javascript Kernel
¨WTF-KDE的C++模板库
nUnicode-qt unicode 库
nGToolsMalloc-Google TCMalloc库
nCURL-url 客户端传输库
nPlatForm- 与平台相关的功能,如图形图像,字体,Unicode, IO,输入法等.
现代浏览器体系结构
n浏览器系统结构图分为四层
n第一层为业务应用层,用户可在webkit基础上构建各种应用。
n第二层为插件及第三方库。
n第三层为webkit平台Porting所需的接口层。
n最底层为平台和操作系统支持层,提供webkit平台所需的软硬件资源。
最新文章
- canvas画圆(一)
- HDU5950(矩阵快速幂)
- Android学习笔记——权限解释
- Ionic 开发环境搭建
- JS日历制作获取时间
- Round and Round We Go
- outlook经常无故崩溃解决办法
- Android Glide+CircleImageView实现加载圆形图片列表
- 为EF DbContext生成的实体添加注释(T5模板应用)[转]
- 海量数据面试题----分而治之/hash映射 + hash统计 + 堆/快速/归并排序
- 【Struts2学习笔记(1)】Struts2中Action名称的搜索顺序和多个Action共享一个视图--全局result配置
- 交换机VLAN研究
- Ajax改动购物车
- python 产生token及token验证
- Apache服务器中设置端口映射和反向代理的方法
- C++顺序容器之deque初探
- 软件架构设计学习总结(1):标准Web系统的架构分层
- 造轮子 | 怎样设计一个面向协议的 iOS 网络请求库
- OpenGL学习脚印:深度測试(depth testing)
- Spring 加载配置文件的方式