博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Webkit初始化以及载入URL过程中各种对象的建立时序以及DOM树的建立详情分析
阅读量:5864 次
发布时间:2019-06-19

本文共 966 字,大约阅读时间需要 3 分钟。

        众所周知,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树的建立具体情况

        下一篇讲讲词法分析器的工作过程。

你可能感兴趣的文章
leetcode819
查看>>
008-对象—— 对象$this self parent 内存方式及使用方法讲解
查看>>
2017年8月14日套题记录 | 普及组
查看>>
html js jquery 学习笔记
查看>>
设置MongoDB课程环境
查看>>
autofac文档:扫描(程序集)
查看>>
iOS图片拉伸(气泡拉伸、相框拉伸)
查看>>
SVN使用
查看>>
爬虫-----数据采集的基本原理
查看>>
wget下载网站
查看>>
关于在elasticSearch中使用聚合查询后只显示10个bucket的问题
查看>>
C# 异常处理
查看>>
Android 数字签名
查看>>
两个人合作成功的案例
查看>>
Arduino小车的制作及硬件选型
查看>>
java项目创建和部署
查看>>
dreamweaver中如何清除代码中多余的空行?
查看>>
信息写入记事本方法
查看>>
【原创】使用Kettle的一些心得和经验
查看>>
quartz使用(整合spring)
查看>>