正文

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

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


  

1.3  開發(fā)人員工具

開發(fā)人員工具是一組內(nèi)置的HTML,JavaScript和CSS工具,專門用于進(jìn)行快速原型制作與網(wǎng)頁調(diào)試。這些工具在IE 7中稱為“開發(fā)人員工具欄”,可以作為加載瀏覽器欄的下一級;在IE 8中,這些工具得到了改進(jìn),成為內(nèi)置工具。這些工具由4個主選項卡組成:HTML和樣式內(nèi)置編輯器、CSS樣式查看器、腳本調(diào)試器和JavaScript探查器。

HTML和CSS選項卡顯示關(guān)于DOM、頁面布局和適用樣式的可編輯信息。DOM可以通過一個樹狀視圖對象進(jìn)行編輯;在單擊一個節(jié)點(diǎn)時,可以通過相鄰面板來查看樣式、布局、屬性、信息和CSS跟蹤。只要這個編輯器所顯示的元素仍然存在于該頁面中,在這個視圖中對項目進(jìn)行的更改都會反映到當(dāng)前頁面中。

腳本調(diào)試器和探查器提供了當(dāng)前頁面的實(shí)時腳本調(diào)試、控制臺編輯、斷點(diǎn)插入和腳本定時信息。在“腳本”選項卡(譯者注:原書中為Debugger選項卡)中,開發(fā)人員可以打開和關(guān)閉調(diào)試、逐語句、逐過程和跳出;查看斷點(diǎn)、局部變量、監(jiān)視和調(diào)用堆棧。探查器顯示了對當(dāng)前頁面所加載JavsScript函數(shù)的定時調(diào)用,以及調(diào)用數(shù)目和整體調(diào)用樹。

腳本錯誤和查看源碼

“腳本錯誤”對話框向用戶通告網(wǎng)頁上發(fā)生的腳本錯誤;為處理該網(wǎng)頁上的腳本塊而加載的腳本引擎會返回這個錯誤,由IE顯示。在以前版本的IE中,如果注冊了默認(rèn)的系統(tǒng)調(diào)試器,有一些腳本錯誤會被發(fā)送到該調(diào)試器。

到了IE 8,IE中包含了內(nèi)置源碼查看器。“查看源碼”顯示標(biāo)記并用顏色加以區(qū)分,還包含了行號以便引用。通過訪問“開發(fā)人員工具”的“文件”菜單中“自定義Internet Explorer查看源碼”菜單選項,可以改變默認(rèn)的源查看器。

1.4  Shell文檔視圖

Shell文檔視圖(ShDocVw)是一種活動文檔容器(也稱為“文檔宿主程序”)。這個容器在Shell命名空間內(nèi)部托管OLE活動文檔(或者文檔對象)。通常,IE托管MSHTML,這是一種為呈現(xiàn)HTML設(shè)計的文檔對象。為了托管OLE活動文檔,Shell文檔視圖實(shí)現(xiàn)了IOleClientSite和IOleDocumentSite。

將在后面進(jìn)行討論的WebBrowser控件是一個包裝,用于封裝同一IShellBrowser界面。WebBrowser控件不是托管在IE框架內(nèi),它是一個可以由其他應(yīng)用程序托管的ActiveX控件。通過ShDocVw和一個稱為CBaseBrowser2的私有類(但在導(dǎo)出的表頭中可以看到這個類),IE框架和WebBrrowser控件共享一些公共功能,例如“旅行日志”和快捷菜單擴(kuò)展。

1.4.1  旅行日志和共享功能

有很多功能都是由IE框架和WebBrowser控件共享的,這一共享是通過ShDocVw及內(nèi)部的CBaseBrowser2類實(shí)現(xiàn)的。

旅行日志是IE用于導(dǎo)航信息的函數(shù)式存儲與訪問機(jī)制。簡單地說,它是一種數(shù)據(jù)結(jié)構(gòu)和相應(yīng)的界面,存儲一個“堆?!?,對一個ShDocVw實(shí)例的導(dǎo)航進(jìn)行更改。還有一些公開的界面,例如ITravelLog,但這些界面在SDK文檔中顯示為已棄用(不過很可能還能訪問它們)。

IE框架和WebBrowser控件之間共享的很多其他函數(shù)和屬性,都可以通過ExecWB()函數(shù)和相關(guān)事件在ShDocVw的IWebBrowser2界面中找到。

1.4.2  Trident (MSHTML)

Trident (MSHTML)是一個由ShDocVw托管的OLE活動文檔。終端用戶更多的是將它看作IE中一個顯示網(wǎng)頁的框。在這個顯示之下有大量子系統(tǒng),用于處理網(wǎng)頁的分析、渲染和布局,而且還公開了大量API。在下一節(jié)將更詳細(xì)地討論Trident是如何下載、分析和顯示網(wǎng)頁的。

1.4.3  第三方及自定義文檔對象

COM對象可以公開一個自定義OLE活動文檔,它的實(shí)現(xiàn)可以被托管在ShDocVw中。一些常見的文檔對象包括Microsoft Office查看器(PowerPoint,Word和Visio)和PDF閱讀器(Adobe Acrobat和FoxIt閱讀器)。這些應(yīng)用程序只是指出與其活動文檔處理器的MIME類型和文件關(guān)聯(lián),當(dāng)加載一個與該關(guān)聯(lián)相匹配的文檔時,IE將加載相關(guān)的實(shí)現(xiàn)。

1.5  Trident布局和渲染引擎

MSHTML為很多人所熟知,有時被稱為“Trident”,它是一種布局和渲染引擎,由IE用于處理HTML,CSS和其他標(biāo)記分析。Trident本身是一種OLE活動文檔,使用單元線程(apartment threading)將其構(gòu)建為一個全異步庫。

盡管Trident是由Active Document容器托管的,但它有自己非常深入和廣泛的擴(kuò)展模型。導(dǎo)出的組件在很大程度上是實(shí)現(xiàn)IDispatch或IDispatchEx,因此,可以使用OLE自動化與腳本進(jìn)行訪問。它的很多子系統(tǒng)也支持通過COM進(jìn)行二進(jìn)制擴(kuò)展;諸如Active控件、腳本引擎和行為等對象,可以在運(yùn)行時加載,在引擎操作時執(zhí)行。

Trident還負(fù)責(zé)確定和處理IE的兼容性場景,既包括二進(jìn)制界面方面的兼容,也包括Web標(biāo)準(zhǔn)方面的兼容。由于不同版本的發(fā)布時間相距較遠(yuǎn),而且存在大量的主流IE版本,所以很多Web和系統(tǒng)應(yīng)用程序在設(shè)計時所依據(jù)的Trident版本是不一樣的。因此,在不同版本中仍然保留了Trident的組成部分,使IE能夠處理下層Web標(biāo)準(zhǔn)支持以及COM界面的原有實(shí)現(xiàn)。


上一章目錄下一章

Copyright ? 讀書網(wǎng) leeflamesbasketballcamps.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號