正文

Internet Explorer體系結(jié)構(gòu)(1)

IE8 & 9開(kāi)發(fā)實(shí)戰(zhàn):基于下一代IE的應(yīng)用開(kāi)發(fā) 作者:(美)克羅利


  

Internet Explorer (IE)不只是一個(gè)Web瀏覽器,它還是一個(gè)非常廣闊的平臺(tái),為Windows提供了一些必要的組件,用于將Web服務(wù)和和桌面應(yīng)用程序集成在一起。它的復(fù)雜體系結(jié)構(gòu)和擴(kuò)展性,以及大量依賴(lài)它的應(yīng)用程序,都反映了這一點(diǎn)。

本章將會(huì)從整體上概述IE的內(nèi)部與外部組成,介紹瀏覽器及其庫(kù)的體系結(jié)構(gòu),并為后面詳細(xì)討論主要功能區(qū)以及使用公開(kāi)界面進(jìn)行開(kāi)發(fā)等奠定信息基礎(chǔ)。

1.1  應(yīng)用程序體系結(jié)構(gòu)和相關(guān)項(xiàng)

IE由一個(gè)瀏覽器應(yīng)用程序和一系列庫(kù)組成,這些庫(kù)通過(guò)基于COM的體系結(jié)構(gòu)聯(lián)系在一起。這些二進(jìn)制文件只能供Windows平臺(tái)使用,從IE 8開(kāi)始,能夠在所支持系統(tǒng)的x86、x64和IA-64體系結(jié)構(gòu)上使用。IE 8可供Windows XP SP2及更高版本和Windows Server 2003及更高版本使用。

IE瀏覽器是可執(zhí)行文件、庫(kù)及資源的一個(gè)松散集合,它們通過(guò)大量用于控制聯(lián)網(wǎng)、文檔托管、擴(kuò)展性和標(biāo)記處理的庫(kù)函數(shù),提供了一個(gè)用戶(hù)界面(UI)和安全基礎(chǔ)結(jié)構(gòu)。例如,Trident庫(kù)(mshtml.dll)控制網(wǎng)頁(yè)的分析、布局、呈現(xiàn)和顯示。URL Moniker庫(kù)(urlmon.dll)封裝Windows聯(lián)網(wǎng)API,為IE提供基礎(chǔ)通信、安全性和下載基礎(chǔ)結(jié)構(gòu)。外殼文檔查看(shdocvw.dll)提供了WebBrowser控件,它是一個(gè)得到廣泛應(yīng)用的庫(kù),將IE功能與獨(dú)立應(yīng)用程序集成在一起。

IE依賴(lài)于由Windows和其他微軟產(chǎn)品提供的大量界面和API。Windows相關(guān)項(xiàng)包括:使用WinINET進(jìn)行緩存與cookie處理、通過(guò)Windows RSS平臺(tái)實(shí)現(xiàn)源的組織與管理,以及通過(guò)“強(qiáng)制完整性控制(MIC)”和“憑據(jù)用戶(hù)界面”來(lái)提供賬戶(hù)完整性保護(hù)。除了Windows API,IE還使用其他微軟庫(kù),例如腳本引擎(JScript和VBScript)。

在Windows Vista及更高版本中,IE實(shí)現(xiàn)了一組特殊的安全性API,這些API針對(duì)權(quán)限與數(shù)據(jù)訪問(wèn),在進(jìn)程之間進(jìn)行了明確隔離。諸如“保護(hù)模式”和“松耦合Internet Explorer”等IE功能實(shí)現(xiàn)了上述基礎(chǔ)結(jié)構(gòu),提高了瀏覽器的整體安全性、可靠性和效能。

IE的一般體系結(jié)構(gòu)(如圖1-1所示)由一些可執(zhí)行文件和DLL組成:

框架/代理進(jìn)程(iexplore.exe,ieframe.dll):這些進(jìn)程用于控制IE的用戶(hù)界面(瀏覽器“框架”),控制對(duì)象通信和管理會(huì)話(huà)。

選項(xiàng)卡進(jìn)程(iexplore.exe):IE的選項(xiàng)卡管理器和容器,用于顯示網(wǎng)頁(yè)和擴(kuò)展。這一進(jìn)程受IE框架/代理進(jìn)程的控制。

外殼文檔視圖/ShDocVw(shdocvw.dll):MSHTML和其他OLE活動(dòng)文檔(文檔對(duì)象)的“活動(dòng)文檔容器”。這個(gè)庫(kù)還公開(kāi)了WebBrowser控件。

Trident/MSHTML(mshtml.dll):一個(gè)代表IE布局、呈現(xiàn)和編輯引擎的“OLE活動(dòng)文檔”對(duì)象。IE就是用它來(lái)顯示網(wǎng)頁(yè)。

URLMon(urlmon.dll):URL Moniker庫(kù);用于封裝Windows聯(lián)網(wǎng)API,并為IE提供基礎(chǔ)安全性和下載管理。

WinINET(wininet.dll):負(fù)責(zé)Web協(xié)議通信、響應(yīng)緩存和cookie的Windows庫(kù)。

源存儲(chǔ)(msfeeds.dll):Windows RSS平臺(tái)API;由IE的RSS和ATOM 源閱讀器使用,以通過(guò)Windows“通用源列表”打開(kāi)、顯示和管理源。

高完整性代理(ieinstal.exe),ActiveX Installer Service (axinstsv.exe):這些應(yīng)用程序用來(lái)執(zhí)行“高度完整性”操作(例如安裝ActiveX控件)。

Internet設(shè)置控制面板(inetcpl.cpl):用于進(jìn)行IE設(shè)置與配置的Windows控制面板界面。

HTML應(yīng)用程序宿主(mshta.exe):WebBrowser控件的一種實(shí)現(xiàn),它以最小化的用戶(hù)界面來(lái)運(yùn)行受信任的UI和腳本。

JScript和VBScript(jscript.dll,vbscript.dll):分別用于JavaScript和VBScript的主腳本引擎。

這個(gè)列表并沒(méi)有包含IE的全部相關(guān)項(xiàng)和庫(kù),而只是列出了最重要的組件。在下面各章節(jié)中,將會(huì)更深入地研究IE、其相關(guān)項(xiàng)以及Windows系統(tǒng)之間的交互


上一章目錄下一章

Copyright ? 讀書(shū)網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)