1)
?
ResourceDispatcher::OnReceivedData()
?
資源分派類接收到網(wǎng)頁數(shù)據(jù)。
2)
?
WebCore::ResourceHandleInternal::OnReceivedData()
?
WebCore::ResourceHandleInternal
類接收到數(shù)據(jù)。
3)
?
WebCore::ResourceLoader::didReceiveData()
?
資源加載類接收到數(shù)據(jù)。
4)
?
WebCore::MainResourceLoader::didReceiveData()
?
主資源類接收到數(shù)據(jù)。
5)
?
WebCore::MainResourceLoader::addData()
主資源類保存數(shù)據(jù)。
6)
?
WebCore::FrameLoader::receivedData()
框架加載類保存數(shù)據(jù)。
7)
?
WebCore::DocumentLoader::receivedData()
文檔加載類保存數(shù)據(jù)。
8)
?
WebCore::DocumentLoader::commitLoad()
文檔加載類提交所有接收的數(shù)據(jù)。
9)
?
WebCore::FrameLoader::committedLoad()
框架加載類提交數(shù)據(jù)。
10)
???
WebFrameLoaderClient::committedLoad()
網(wǎng)頁框架加載類提交數(shù)據(jù)。
11)
???
WebFrameImpl::DidReceiveData()
網(wǎng)頁框架實(shí)現(xiàn)類保存提交的數(shù)據(jù)。
12)
???
WebCore::FrameLoader::addData()
框架加載類保存數(shù)據(jù)。
13)
???
WebCore::FrameLoader::write()
把網(wǎng)頁數(shù)據(jù)寫入
HTML
緩沖。
14)
???
WebCore::HTMLTokenizer::write()
?
HTML
終結(jié)符分析器進(jìn)行保存。
15)
???
WebCore::HTMLTokenizer::processToken()
?
HTML
終結(jié)符分析器分析
HTML
數(shù)據(jù)。
16)
???
WebCore::HTMLParser::parseToken()
?
HTML
分析器分析網(wǎng)頁數(shù)據(jù)。
17)
???
WebCore::HTMLParser::insertNode()
分析到一個(gè)網(wǎng)頁里的節(jié)點(diǎn),開始插入。
18)
???
WebCore::Text::attach()
?
發(fā)現(xiàn)一個(gè)文本節(jié)點(diǎn)并保存。
19)
???
WebCore::Node::createRendererIfNeeded()
?
創(chuàng)建可以渲染的節(jié)點(diǎn)。
20)
???
WebCore::Text::createRenderer()
開始創(chuàng)建文本渲染對象。
21)
???
WebCore::RenderText::RenderText()
創(chuàng)建文本渲染對象
RenderText
。
從上面的過程,可以看到分析過程是比較復(fù)雜的,不過,總算把分析網(wǎng)頁數(shù)據(jù)這個(gè)主線抓住了,其它的東西,都是為了這條主線而進(jìn)行的。只要跟著這條主線,把相應(yīng)的類再進(jìn)一步分析,就可以把整個(gè)程序搞得一清二楚了。在最后一步里,就會生成
RenderObject
對象,而所有的
RenderObject
對象是根據(jù)分析
HMTL
生成一棵樹來保存起來。當(dāng)界面上要顯示出來時(shí),其實(shí)就是去遍歷整個(gè)
RenderObject
對象樹。下一次再來分析界面怎么樣顯示這些對象的。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
