Webkit初始化以及加载URL过程中各种对象的建立时序以及DOM树的建立详情分析
来源:互联网 发布:linux 定时执行命令 编辑:程序博客网 时间:2024/05/21 09:46
众所周知,Webkit需要创建DOM树。为此它需要创建WebView, Chrome,Page,Frame, Document, Document Parser, DOM Tree Builder(DOM树的建造引擎),ScriptRunner, Resource Handle等等对象。
同时,还需要创建为上面这些对象服务或者与之通信的支持对象,比如:与本地窗口相关的ChromeClient, 与FrameLoader事件相关的FrameLoaderClient,为Document服务的Document Loader、DocumentWriter及DocumentParser; 分析HTML页面词语的HTMLMetaChractorParser、HTMLTokenizer;语法分析器服务的HTMLParserScheduler,为DOM树建立服务的HTMLConstrctionSite;为网络资源请求服务的ResourceLoader等等。
当然,除了这里列出的对象之外,还有许多对象比如SubResourceLoader等等没有全列出。那么,这么多对象是啥时候创建的呢?按时间排序,我把她们排列如下:
WebView->ChromeClient->Chrome->Page->FrameLoaderClient->FrameLoader->Frame->
PolicyChecker->DocumentLoader->DocumentWriter->Document->HTMLDocumentParser->
TextResourceDecoder->HTMLMetaChractorParser->HTMLTokenizer->HTMLScripRunner->HTMLParserScheduler->
HTMLTreeBuilder->HTMLConstructionSite->HTMLElementFactory->MainResourceLoader->ResourceHandle
具体的创建细节我画了两个时序图:
图一:初始化时(发起网络请求Request之前)各对象的创建
图二:发起网络请求(Request)之后各种对象的创建以及DOM树的建立详细情况
下一篇讲讲词法分析器的工作过程。
- Webkit初始化以及加载URL过程中各种对象的建立时序以及DOM树的建立详情分析
- 各种数据库JDBC驱动加载注册方式以及建立连接时的URL字符串
- 关于建立保持时间以及时序的一些问题集合
- TCP连接的建立以及利用tcpdump分析连接建立的过程
- java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序如下:
- 树的建立以及遍历
- c语言实现线性表的建立,初始化,插入,删除,查找,遍历以及时间复杂度分析
- Oracle 建立序列以及触发器的建立
- 建立KPI的各种方法以及简要评价(笔记)
- 链表的建立以及各种基本操作
- Java 实现二叉树的建立以及前、中、后序遍利
- 二叉树的建立以及相关操作
- C++二叉树的建立以及遍历
- svn的建立以及使用
- 单链表的建立以及使用
- 栈的建立以及使用
- Webkit中HTML5 Video的实现分析 (四) - 视频加载及播放的时序图
- Webkit中HTML5 Video的实现分析 (四) - 视频加载及播放的时序图
- 在android中运行java main方法
- warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
- 第三周
- DIV与SPAN之间有什么区别
- TopCoder SRM496 Div1 YetAnotherHamiltonianPath解题报告
- Webkit初始化以及加载URL过程中各种对象的建立时序以及DOM树的建立详情分析
- C# 特性(Attribute)详细介绍
- LevelDB 关键算法概述
- UIButton setTitle
- 关于面向对象,面向组件和面象服务的简单讨论
- git版本回滚
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- cocos2dx3.3开发FlappyBird总结五:说说屏幕适配
- 利用winform中DataGridView的显示较大数量的的数据