亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

谷歌瀏覽器的源碼分析(17)

系統(tǒng) 2439 0
?

當(dāng)輸入的網(wǎng)頁連接傳送給 LoadURL 函數(shù)之后,還需要處理很多內(nèi)容,其實(shí)這是由類 NavigationController 來管理的, NavigationController 類主要就是管理加載網(wǎng)頁、退回、前進(jìn)等等控制。

#001 ? void NavigationController::LoadURL(const GURL& url,

#002 ???????????????????????????????????? PageTransition::Type transition) {

#003 ??? // The user initiated a load, we don't need to reload anymore.

#004 ??? needs_reload_ = false;

#005 ?

#006 ??? NavigationEntry* entry = CreateNavigationEntry(url, transition);

#007 ?

#008 ??? LoadEntry(entry);

#009 ? }

這個(gè)函數(shù)的第一個(gè)參數(shù) url 是網(wǎng)絡(luò)連接地址,第二個(gè)參數(shù) transition 是傳送的類型。

4 行代碼里設(shè)置不是重新加載。

6 行里創(chuàng)建了一個(gè)處理網(wǎng)頁瀏覽的入口對(duì)象,它是由類 NavigationEntry 管理。

8 行里就調(diào)用函數(shù) LoadEntry 來加載網(wǎng)頁。

?

LoadEntry 函數(shù)更進(jìn)一步去加載網(wǎng)頁的內(nèi)容,它的代碼如下:

#001 ? void NavigationController::LoadEntry(NavigationEntry* entry) {

#002 ??? // When navigating to a new page, we don't know for sure if we will actually

#003 ??? // end up leaving the current page. ? The new page load could for example

#004 ??? // result in a download or a 'no content' response (e.g., a mailto: URL).

#005 ?

#006 ??? // TODO(pkasting): http://b/1113085 Should this use DiscardPendingEntry()?

?

清除內(nèi)部變量。

#007 ??? DiscardPendingEntryInternal();

?

保存當(dāng)前的入口對(duì)象。

#008 ??? pending_entry_ = entry;

?

通知服務(wù)器有一個(gè)瀏覽器對(duì)象加入。

#009 ??? NotificationService::current()->Notify(

#010 ??????? NOTIFY_NAV_ENTRY_PENDING,

#011 ??????? Source<NavigationController>(this),

#012 ??????? NotificationService::NoDetails());

?

下面開始進(jìn)入加載網(wǎng)頁的動(dòng)作。

#013 ??? NavigateToPendingEntry(false);

#014 ? }

?

9 行里的類 NotificationService 是使用 OBSERVER 的設(shè)計(jì)模式來實(shí)現(xiàn)一對(duì)多的顯示關(guān)系。這個(gè)設(shè)計(jì)模式也是跟 MVC 與生具來的,顯然設(shè)計(jì)這個(gè)瀏覽器代碼的人,已經(jīng)是對(duì)設(shè)計(jì)模式是專家式的人物了。

?

13 行里調(diào)用函數(shù) NavigateToPendingEntry ,下一次再來分析它的功能。

谷歌瀏覽器的源碼分析(17)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 欧美一级精品 | 久久精品只有这里有 | 高清国产精品入口麻豆 | 天天草夜夜| 午夜影院一区二区 | 欧美日韩在线网站 | 农村女人十八毛片a级毛片 农村三级孕妇视频在线 | 亚洲欧美色图片 | 成人免费视频视频在线不卡 | 日日摸夜夜添夜夜添久久 | 91九色精品国产免费 | 国产高清成人mv在线观看 | 香蕉免费一区二区三区在线观看 | 黑人和黑人激情一级毛片 | 国产 福利 在线 | 亚洲精品大片 | 欧美精品在线观看 | 天天躁日日躁狠狠躁黑人躁 | 亚洲欧美中文日韩在线 | 伊人在综合 | 福利影院在线看 | 老师在办公室被躁到白浆 | 997在线观看视频国产 | 国产精品久久久免费视频 | 久久.com| 亚洲小视频在线播放 | 一区二区在线精品免费视频 | 福利视频欧美一区二区三区 | 亚洲一区二区在线免费观看 | 国产欧美日韩高清专区手机版 | 欧美亚洲国产激情一区二区 | 91青娱国产 | 操操色| 欧美伊人久久久久久久久影院 | 欧美日韩大尺码免费专区 | 大片在线播放日本一级毛片 | 这里只有精品国产 | 天堂成人一区二区三区 | www.久久久| 欧美日韩三 | 国产色婷婷精品免费视频 |