Webkit初始化以及載入URL過程中各種對象的建立時序以及DOM樹的建立詳情分析

來源:互聯網
上載者:User

標籤:write   建立   round   handle   本地   factor   col   引擎   很多   

? ? ? ? 眾所周知,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之前)各對象的建立

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGljaHdlaTE5ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />

圖二:發起網路請求(Request)之後各種對象的建立以及DOM樹的建立具體情況

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGljaHdlaTE5ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />


? ? ? ? 下一篇講講詞法分析器的工作過程。

Webkit初始化以及載入URL過程中各種對象的建立時序以及DOM樹的建立詳情分析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

Tags Index: