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 。

浏览器的分层结构

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平台所需的软硬件资源。

webview综述的更多相关文章

  1. Android 4.2版本以下使用WebView组件addJavascriptInterface方法存在JS漏洞

    JS注入漏洞存在的Android版本:Android < 4.2 综述:Android的SDK中提供了一个WebView组件,用于在应用中嵌入一个浏览器来进行网页浏览.WebView组件中的ad ...

  2. Android 之 用WebView显示网页

    WebView可以使得网页轻松的内嵌到 app 里,还可以直接跟js相互调用. WebView有两个方法:setWebChromeClient 和 setWebClient (1) setWebCli ...

  3. Android混合开发之WebView与Javascript交互

    前言: 最近公司的App为了加快开发效率选择了一部分功能采用H5开发,从目前市面的大部分App来讲,大致分成Native App.Web App.Hybrid App三种方式,个人觉得目前以Hybri ...

  4. android通过webview调起支付宝app支付

    webview在加载网页的时候会默认调起手机自带的浏览器加载网页,用户体验不好.但当用户设置浏览器客户端(setWebViewClient)设置这样的监听事件之后,当请求url的时候就不会打开手机自带 ...

  5. Android WebView 优化页面加载效果

    目前带有Web功能的APP越来越多,为了能够更好的使用WebView展示页面,可以考虑做相关的优化:WebView 缓存,资源文件本地存储,客户端UI优化. 可能有些人会说,为什么不做Native的, ...

  6. Android 浏览器 —— 使用 WebView 实现文件下载

    对当前的WebView设置下载监听 mCurrentWebView.setDownloadListener(new DownloadListener() { @Override public void ...

  7. Android混合开发之WebView使用总结

    前言: 今天修改项目中一个有关WebView使用的bug,激起了我总结WebView的动机,今天抽空做个总结. 混合开发相关博客: Android混合开发之WebView使用总结 Android混合开 ...

  8. 记一次使用 android 自带 WebView 做富文本编辑器之API、机型的兼容及各种奇葩bug的解决

    转载请声明出处(http://www.cnblogs.com/linguanh/) 目录 1,测试设备介绍 2,开源项目richeditor及CrossWalk的选择 3,遇到的bug及其解决方法 4 ...

  9. 【WP8.1】WebView笔记

    之前在WP8的时候做过WebBrowser相关的笔记,在WP8.1的WebView和WebBrowser有些不一样,在这里做一些笔记 下面分为几个部分 1.禁止缩放 2.JS通知后台C#代码(noti ...

随机推荐

  1. 【原】Ajax技术原理

    主要内容: Ajax原理 Ajax核心技术 Ajax是Asynchronous JavaScript and XML的简称,意思是异步的JavaScript和XML. 主要包括技术: web标准的XH ...

  2. Java - 将可变性最小化

    不可变类,即实例不能被修改的类,实例中包含的所有信息在对象的生命周期内固定不变. 常见的比如String.基本类型的封装类.BigDecimal.BigInteger. 相对与可变类,不可变更易于设计 ...

  3. Vs2015+opencv2.4.10出现msvcp120d.dll丢失 opencv2410.props

    今天vs2015配置好opencv编译运行会报错msvcp120d.dll丢失,只要把这个文件复制到你在第一步设置的Path环境变量路径里,和opencv的dll放在一起就行了.(初次配置完环境变量后 ...

  4. 记一次tomcat自动退出问题

    问题 环境: centos/tomcat8/jdk1.8 最近遇到部署在服务器的tomcat总是过一段时间就自动结束进程 ; 通过监控tomcat 日志文件(tail -f ./logs/catali ...

  5. ZOJ 1049 判断坐标点

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=49 水题 #include<iostream> #include&l ...

  6. hadoop start-all.sh报错JAVA_HOME is not set and could not be found.

    原文 错误:JAVA_HOME is not set and could not be found,可能是因为JAVA_HOME环境没配置正确,还有一种情况是即使各结点都正确地配置了JAVA_HOME ...

  7. JS中数组和对象的区别

  8. CSS实现文字两端对齐

    最近的项目遇到了这样的需求:(要求标题部分不管文字多少,都必须两端对齐) 如下图: 当时也没有多想直接使用‘ ’进行代替,毕竟产品同学想快一点看到效果,不敢怠慢!不过到第二个页面就傻眼了. 如图: 这 ...

  9. CSS(一)sytle

    一:CSS语法组成:  选择符 和声明(声明和声明之间用分号隔开)  声明部分:属性和属性值(用冒号链接)  语法:选择符{   属性1:属性值:   属性2:属性值:  } 所有的CSS语句都要放到 ...

  10. Python之正则表达式模块

    正则表达式符号: . ^ $ * + ? {} () | [] .一个点代表一个字符 ^代表开头 $代表结尾 *代表有0到无数个 [0,+00] ?代表有0到1个      [0,1] +代表有1到无 ...