專利名稱:順序布局構(gòu)建器體系結(jié)構(gòu)的制作方法
順序布局構(gòu)建器體系結(jié)構(gòu)
背景技術(shù):
使用Web瀏覽器再現(xiàn)結(jié)構(gòu)化的Web內(nèi)容,諸如HTML和CSS內(nèi)容,典型地牽涉到處理包括標(biāo)記的結(jié)構(gòu)化文檔以確定內(nèi)容的布局(layout),使得其可以由Web瀏覽器呈現(xiàn)。這樣的處理可以包括內(nèi)容位置、大小和形狀計算,以便從所述標(biāo)記確定相關(guān)聯(lián)的內(nèi)容將如何被呈現(xiàn)在屏幕或顯示器上。對于可用性和用戶感知而言,期望的是布局和呈現(xiàn)算法按照可適用的標(biāo)準(zhǔn)快速并正確地工作。在整個業(yè)界,布局處理普遍以遞歸方式執(zhí)行。例如,這樣的處理可以包括在HTML標(biāo)記的根節(jié)點(diǎn)上發(fā)起處理操作,并以遞歸的方式貫穿該標(biāo)記向下處理到葉節(jié)點(diǎn)。該處理典型地在HTML文檔被呈現(xiàn)之前在整個HTML文檔上進(jìn)行。此外,現(xiàn)代的多核體系結(jié)構(gòu)可以準(zhǔn)許處理被并行地執(zhí)行。然而,因?yàn)椴季痔幚淼倪f歸性質(zhì),從并行處理所得到的優(yōu)勢不能被充分利用。
布局處理的遞歸性質(zhì)也可能導(dǎo)致處理中的重復(fù),這進(jìn)而又可能使性能和用戶體驗(yàn)降級。
發(fā)明內(nèi)容
本概要被提供來以簡化的形式介紹概念的選擇,這些概念還將在下面的詳細(xì)說明中進(jìn)行描述。本概要既不打算確認(rèn)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不打算被使用來限制所要求保護(hù)的主題的范圍。按照一個或多個實(shí)施例,對結(jié)構(gòu)化文檔的布局處理以順序的方式實(shí)施(conduct)。布局過程被分成可以順序地執(zhí)行的多個更小的步驟。在至少一些實(shí)施例中,布局構(gòu)建器被結(jié)合棧使用以控制在文檔的結(jié)構(gòu)層次的各層次上的布局執(zhí)行。不可變的數(shù)據(jù)結(jié)構(gòu)被使用,并且其允許順序布局操作的并行執(zhí)行。在至少一些實(shí)施例中,可以完成布局序列的部分執(zhí)行來產(chǎn)生可用的數(shù)據(jù)。
在全部附圖中,使用相同的標(biāo)號來標(biāo)注同樣的特征。圖I圖示了按照一個或多個實(shí)施例的、在其中可以利用這里描述的各種原理的操作環(huán)境。圖2圖示了按照一個或多個實(shí)施例的示例性體系結(jié)構(gòu)。圖3描述了按照一個或多個實(shí)施例的、在順序布局構(gòu)建過程中的布局空間分配協(xié)議。圖4是描述按照一個或多個實(shí)施例的方法中的步驟的流程圖。圖5圖示了按照一個或多個實(shí)施例的布局框的類層次。圖6圖示了按照一個或多個實(shí)施例的框構(gòu)建器的類層次。圖7圖示了可以被使用來實(shí)施一個或多個實(shí)施例的示例性系統(tǒng)。
具體實(shí)施例方式綜沭
按照一個或多個實(shí)施例,布局處理以順序的方式實(shí)施。布局過程被分成可以順序地執(zhí)行的多個更小的步驟。在至少一些實(shí)施例中,布局構(gòu)建器被結(jié)合棧使用以控制在結(jié)構(gòu)化文檔的結(jié)構(gòu)層次的各層次上的布局執(zhí)行。不可變的數(shù)據(jù)結(jié)構(gòu)被使用,并且允許順序布局操作的并行執(zhí)行。在至少一些實(shí)施例中,可以完成布局序列的部分執(zhí)行來產(chǎn)生可用的數(shù)據(jù)。這里描述的技術(shù)可以結(jié)合任意類型的結(jié)構(gòu)化文檔一起被使用,作為例子而不是限制,結(jié)構(gòu)化文檔諸如是HTML文檔。在一個或多個實(shí)施例中,在布局構(gòu)建器的影響下,順序布局處理被組織為按一組順序的步驟執(zhí)行的非遞歸樹徑(tree walk),所述的一組順序的步驟諸如像“進(jìn)入塊”、“退出塊”、“構(gòu)建行”等等。一個個步驟可以具有恒定的時間來執(zhí)行,并且整個過程可以在一個個步驟后被停止,以便產(chǎn)生可用于再現(xiàn)和用戶交互的部分布局。
在一個或多個實(shí)施例中,通過把在布局構(gòu)建期間使用的臨時數(shù)據(jù)與提供用于再現(xiàn)和交互的布局結(jié)果的持久性數(shù)據(jù)進(jìn)行分離,而將布局構(gòu)建數(shù)據(jù)結(jié)構(gòu)組織成達(dá)到高效緊致性。臨時數(shù)據(jù)由一組布局構(gòu)建器代表,每種布局一個布局構(gòu)建器。布局構(gòu)建器是在布局處理期間臨時存在的臨時對象。另一方面,持久性數(shù)據(jù)被表示為存儲在最終得到的顯示樹中的布局框,顯示樹可以被處理來呈現(xiàn)相關(guān)聯(lián)的內(nèi)容。這樣做可以比過去更加高效地利用存儲器資源。例如,在HTML處理的上下文中,在任一特定時間存在的布局構(gòu)建器的數(shù)量由HTML文檔的深度來限定,而不是由HTML文檔的寬度來限定。因此,由布局構(gòu)建器代表的臨時數(shù)據(jù)不必駐留在最終得到的顯示樹中。另外,被處理的數(shù)據(jù)和處理算法都以可伸縮的方式被組織。這允許任意的布局片段的執(zhí)行。這種順序可伸縮性導(dǎo)致了對于可以被使用于回溯針對滾動、分頁、欄目化等等的嘗試的算法的改進(jìn)性能。此外,在至少一些實(shí)施例中,布局結(jié)果由被設(shè)計為不可變的布局框所代表。這使得布局框能夠在動態(tài)情景中被再次使用,動態(tài)情景諸如是漸增的部分更新、并行布局、漸進(jìn)式再現(xiàn)以及回溯布局執(zhí)行。此外,在至少一些實(shí)施例中,在規(guī)定的、計算的以及已用值和結(jié)構(gòu)之間強(qiáng)制分離。這允許跨整個布局流水線的、部分的和可再次使用的計算。在HTML上下文中,規(guī)定的值涉及在原始的HTML標(biāo)記中如何規(guī)定值。這些值可能是矛盾的、不完整的和無效的。這些不一致性可使規(guī)定的值很難利用。計算的值是與歸一化屬性和歸一化值的組合相關(guān)聯(lián)的。這些值是不矛盾的且是可靠的。已用值代表在布局框中存儲的值。在隨后的討論中,提供了標(biāo)題為“操作環(huán)境”的章節(jié),其描述了一種在其中可以利用一個或多個實(shí)施例的環(huán)境。在這之后,標(biāo)題為“示例性體系結(jié)構(gòu)”的章節(jié)描述了按照一個或多個實(shí)施例的示例性體系結(jié)構(gòu)。接著,標(biāo)題為“示例性方法”的章節(jié)描述了按照一個或多個實(shí)施例的示例性方法。在這之后,標(biāo)題為“實(shí)施細(xì)節(jié)”的章節(jié)描述了按照一個或多個實(shí)施例的實(shí)施細(xì)節(jié)。最后,標(biāo)題為“示例性系統(tǒng)”的章節(jié)描述了可以被使用來實(shí)施一個或多個實(shí)施例的示例性系統(tǒng)。操作環(huán)境
圖I圖示了按照一個或多個實(shí)施例的操作環(huán)境,總地標(biāo)為100。環(huán)境100包括計算設(shè)備102,其具有一個或多個處理器104、一個或多個計算機(jī)可讀存儲媒體106、和駐留在計算機(jī)可讀存儲媒體上并可由處理器執(zhí)行的一個或多個應(yīng)用108。作為例子而不是限制,所述計算機(jī)可讀存儲媒體可以包括典型地與計算設(shè)備相關(guān)聯(lián)的、所有形式的易失性和非易失性存儲器和/或存儲媒體。這樣的媒體可以包括ROM、RAM、閃存、硬盤、可拆卸媒體等等。下面在圖7中顯示和描述了計算設(shè)備的一個特定的例子。另外,計算設(shè)備102包括以web瀏覽器110形式的軟件應(yīng)用??梢允褂萌魏芜m當(dāng)?shù)膚eb瀏覽器,其例子是從本文檔的受讓人和其它方可得到的。另外,計算機(jī)可讀存儲媒體106可以包括順序布局構(gòu)建器111,其按上面和下面所描述的那樣進(jìn)行操作。順序布局構(gòu)建器111可以被實(shí)施為可由應(yīng)用108和瀏覽器110使用的獨(dú)立的組件。替換地或另外地,順序布局構(gòu)建器111可以被實(shí)施為應(yīng)用108和/或?yàn)g覽器110的一部分。在操作中,順序布局構(gòu)建器111允許諸如HTML文檔這樣的結(jié)構(gòu)化文檔的順序處理,以及允許布局以順序的方式被計算。順序布局構(gòu)建器使用高效的體系結(jié)構(gòu),該體系結(jié)構(gòu)利用了布局構(gòu)建器的用來監(jiān)督布局處理的過程的用途、利用了熟知它們自己的針對內(nèi)容處理的要求的框構(gòu)建器類型、以及利用了由框構(gòu)建器類型的實(shí)例構(gòu)建且持有最終要在顯示器或屏幕上再現(xiàn)的數(shù)據(jù)的相關(guān)聯(lián)的布局框。另外,環(huán)境100包括諸如因特網(wǎng)那樣的網(wǎng)絡(luò)112,以及可以從其接收內(nèi)容和向其發(fā)送內(nèi)容的一個或多個網(wǎng)站114。這樣的內(nèi)容可以包括諸如HTML文檔的結(jié)構(gòu)化文檔,以及可以由順序布局構(gòu)建器111如上面和下面描述的在其上進(jìn)行操作的其它web內(nèi)容。計算設(shè)備102可以被具體化為任何適當(dāng)?shù)挠嬎阍O(shè)備,作為例子而不是限制,諸如是臺式計算機(jī),便攜式計算機(jī),比如個人數(shù)字助理(PDA)、蜂窩電話那樣的手持式計算機(jī),等
坐寸o已經(jīng)描述了示例性操作環(huán)境后,現(xiàn)在考慮可以被使用來順序地處理諸如HTML的結(jié)構(gòu)化文檔的示例性體系結(jié)構(gòu)的討論。在下面的討論中,使用HTML做為結(jié)構(gòu)化文檔的例子。應(yīng)當(dāng)理解和明白,下面描述的技術(shù)可以結(jié)合其它類型的結(jié)構(gòu)化文檔一起被利用,而不背離所要求保護(hù)的主題的精神和范圍。示例件體系結(jié)構(gòu)
圖2圖示了按照一個或多個實(shí)施例的示例性體系結(jié)構(gòu),總地標(biāo)為200。在這個特定的例子中,體系結(jié)構(gòu)200包括布局構(gòu)建器202、框構(gòu)建器204、布局框206、容器框208和行框210。另外,體系結(jié)構(gòu)200包括可以在HTML的順序布局處理期間采取的動作212、214、216和218的表示。該體系結(jié)構(gòu)被使用來構(gòu)建布局框的顯示樹,其中布局框包含內(nèi)容或數(shù)據(jù),諸如文本、圖像或圖形元素,比如將要在屏幕或顯示器上再現(xiàn)的順序矢量圖形(Svg)元素。在圖示的和描述的實(shí)施例中,布局構(gòu)建器202構(gòu)成監(jiān)督或組織整個順序布局處理的布局引擎或?qū)ο?。布局?gòu)建器202負(fù)責(zé)實(shí)例化布局框206,然后與框構(gòu)建器204進(jìn)行通信以務(wù)必使(see)布局框206被填充以要在屏幕或顯示器上再現(xiàn)的內(nèi)容。框構(gòu)建器204是負(fù)責(zé)構(gòu)建特定類型的布局框的對象。特別地,有不同類型的框構(gòu)建器,在204上只顯示了其中的一個。有用于構(gòu)建表、圖像、多色、行等等的框構(gòu)建器??驑?gòu)建器被特定地配置成構(gòu)建特定的一段內(nèi)容。如本領(lǐng)域的技術(shù)人員所理解的,不同類型的內(nèi)容具有不同的布局要求。每個不同類型的框構(gòu)建器熟知針對它的相關(guān)聯(lián)的內(nèi)容類型的不同布局要求,并能構(gòu)建相對應(yīng)的一段內(nèi)容。
在圖示的和描述的實(shí)施例中,框構(gòu)建器204是代表這些不同類型的構(gòu)建器的共同屬性和方法的抽象類,并因此定義了框構(gòu)建的通用聯(lián)系(contact)。布局構(gòu)建器202接收HTML文檔并且順序地移動穿過該文檔,與框構(gòu)建器204進(jìn)行通信,框構(gòu)建器204進(jìn)而又用它的內(nèi)容來填充布局框206。在這個特定的例子中,容器框208和行框210代表布局框206的子類別或子類。行框210代表對應(yīng)于一行文本的個別情形。容器框208是可包含諸如容器框和行框這樣的其它框的框。諸如圖像和Svg圖元這樣的內(nèi)容被作為容器框?qū)Υ幼?12、214、216和218構(gòu)成代表在順序布局處理期間發(fā)生的一系列基本構(gòu)建步驟的動作或函數(shù)。這里,有四個動作BuildLine (f)、EnterBlock (f)、ReEnterBlock (f)和ExitBox (f)。所述函數(shù)加有代表布局構(gòu)建器的縮寫“LB”的前綴,因?yàn)樗鼈儽粚?shí)施為這個類的方法。針對這些方法中的每個方法的主要參數(shù)是當(dāng)前的框構(gòu)建器,其在圖中由從框構(gòu)建 器204朝向所述方法中的每個的數(shù)據(jù)流箭頭來反映。BuildLine (f)
這個方法對應(yīng)于在其上構(gòu)建一行文本的布局構(gòu)建器202的基本步驟。這是可以由布局構(gòu)建器構(gòu)建的內(nèi)容的最小原子部分。要指出的是,所有可能的嵌套的塊,諸如內(nèi)聯(lián)塊(inline block)、浮動物(floater)、或錨定在該行的絕對定位的塊,并不在BuildLine函數(shù)內(nèi)部遞歸地構(gòu)建。而是,它們作為該行的兄弟(sibling)經(jīng)由EnterBlock/ExitBox回調(diào)而被單獨(dú)地構(gòu)建。EnterBlock (f)
當(dāng)布局構(gòu)建器202遇到諸如DIV或TABLE的某個塊元素的打開標(biāo)簽時執(zhí)行這個方法。ReEnterBlock(f)
在塊被前一頁上的分頁符中斷后,當(dāng)該塊在后一頁上被進(jìn)入時,調(diào)用這個方法。ExitBox (f)
當(dāng)布局構(gòu)建器202到達(dá)塊元素的結(jié)束標(biāo)簽時,或在當(dāng)分段的(分頁的)空間在頁邊界上被中斷時的情形下,執(zhí)行這個方法。在操作中,布局處理被組織為對應(yīng)于HTML的基本結(jié)構(gòu)單元(即,純文本的元素標(biāo)簽或順串(run))的一系列步驟。布局構(gòu)建器202接收HTML文檔且一個接一個地讀取這些單元,并執(zhí)行適當(dāng)?shù)膭幼鳌.?dāng)布局構(gòu)建器遇到打開標(biāo)簽時,它識別其類型、創(chuàng)建適當(dāng)?shù)念愋吞囟ǖ目驑?gòu)建器(比如框構(gòu)建器204)、以及通過將所述框構(gòu)建器推給構(gòu)建棧來激活該框構(gòu)建器。然后所述類型特定的框構(gòu)建器將控制針對特定元素構(gòu)建布局內(nèi)容的過程。當(dāng)布局構(gòu)建器遇到元素的關(guān)閉標(biāo)簽時,它與活動的、類型特定的框構(gòu)建器通信以使得最終得到的布局框被完成并被附連到顯示樹上。在這個過程期間,當(dāng)遇到一行文本時,行框形式的布局框(比如行框210)被創(chuàng)建并被插入到顯示樹中。圖3在某些方面與圖2類似,其描述了按照一個或多個實(shí)施例的、在順序布局構(gòu)建過程中的布局空間分配協(xié)議300。該圖也代表可擴(kuò)展性模型。圖3描述了在通用布局構(gòu)建器和多個特定框構(gòu)建器之間的協(xié)議。可擴(kuò)展性通過簡單地將新的框構(gòu)建器類型插入到協(xié)議中,而在想要新的布局類型的事件中變得容易。如將在下面更詳細(xì)地描述的,所述協(xié)議使用了一組虛擬函數(shù),該組虛擬函數(shù)被定義為框構(gòu)建器的抽象類。不同類型的框構(gòu)建器可以不同地實(shí)施這些虛擬函數(shù)。從布局構(gòu)建器的觀點(diǎn)來看,這些函數(shù)中僅有少數(shù)函數(shù)看起來是和布局構(gòu)建器一樣的。如上面所指出的,它們的實(shí)現(xiàn)取決于框構(gòu)建器類型而不同。當(dāng)布局構(gòu)建器貫穿HTML進(jìn)行處理時,以及當(dāng)它遇到標(biāo)簽和其它內(nèi)容時,它在相關(guān)聯(lián)的框構(gòu)建器上調(diào)用相應(yīng)的函數(shù)。當(dāng)布局構(gòu)建器移動穿過特定標(biāo)簽的內(nèi)容時,它可以在框構(gòu)建器上酌情調(diào)用這些不同的函數(shù),使框構(gòu)建器能執(zhí)行它的構(gòu)造,以使得相關(guān)聯(lián)的容器框被構(gòu)建并為顯示作準(zhǔn)備。然而,在各段HTML內(nèi)容之間移動的過程由相關(guān)聯(lián)的個體的框構(gòu)建器控制,所述框構(gòu)建器明確地熟知所述內(nèi)容的結(jié)構(gòu)。在圖示的和描述的實(shí)施例中,協(xié)議300包括布局構(gòu)建器302、ContainerBox.BoxBuilder (容器框.框構(gòu)建器)304、ContainerBox. BoxBuilder 306 和容器框 308。如以上所討論的,布局構(gòu)建器302代表組織整個布局構(gòu)建過程的對象。布局構(gòu)建器302與由圖中的ContainerBox. BoxBuilder 304代表的各個框構(gòu)建器一起工作。如以上所指出的,ContainerBox. BoxBuilder是一種抽象類,其定義框構(gòu)建器的許多具體的子類型要遵循的總合同(general contract)。它定義了布局構(gòu)建器302在不同的構(gòu)建步驟期間調(diào)用的一組虛擬回調(diào),這里被描繪為列舉的橢圓。
下表描述了在橢圓的列舉和它的相關(guān)聯(lián)的虛擬函數(shù)之間的關(guān)聯(lián)。在表的下面,描述了每個虛擬函數(shù)。
權(quán)利要求
1.一種或多種計算機(jī)可讀存儲媒體,其包含計算機(jī)可執(zhí)行指令,當(dāng)所述指令被執(zhí)行時實(shí)施一種軟件體系結(jié)構(gòu),包括 布局構(gòu)建器,被配置成組織結(jié)構(gòu)化文檔的順序布局處理; 框構(gòu)建器,其與布局構(gòu)建器相關(guān)聯(lián);和 一個或多個布局框; 其中所述框構(gòu)建器是代表不同框構(gòu)建器類型的共同屬性和方法的類,各個框構(gòu)建器類型被配置成構(gòu)建對應(yīng)的特定類型的布局框。
2.權(quán)利要求I所述的一種或多種計算機(jī)可讀存儲媒體,其中所述一個或多個布局框包括一個或多個容器框和/或一個或多個行框,其中所述一個或多個容器框和一個或多個行框是布局框的子類。
3.權(quán)利要求I所述的一種或多種計算機(jī)可讀存儲媒體,其中所述一個或多個布局框包括一個或多個容器框和/或一個或多個行框,其中所述一個或多個容器框和所述一個或多個行框是布局框的子類,以及其中容器框被配置成包含其它容器框和其它行框。
4.權(quán)利要求I所述的一種或多種計算機(jī)可讀存儲媒體,其中所述布局構(gòu)建器被配置成實(shí)例化所述一個或多個布局框。
5.權(quán)利要求I所述的一種或多種計算機(jī)可讀存儲媒體,其中所述布局構(gòu)建器被配置成與所述一個或多個框構(gòu)建器類型通信,以有效于促使用要被再現(xiàn)的內(nèi)容填充所述一個或多個布局框。
6.權(quán)利要求I所述的一種或多種計算機(jī)可讀存儲媒體,其中所述結(jié)構(gòu)化文檔包括HTML文檔,并且所述布局構(gòu)建器實(shí)施用來使能順序布局處理的方法,其中所述方法包括以下至少一項(xiàng) 構(gòu)建一行文本的方法, 當(dāng)布局構(gòu)建器遇到打開HTML標(biāo)簽時執(zhí)行的方法,或 當(dāng)布局構(gòu)建器遇到結(jié)束HTML標(biāo)簽時執(zhí)行的方法。
7.權(quán)利要求I所述的一種或多種計算機(jī)可讀存儲媒體,其中所述結(jié)構(gòu)化文檔包括HTML文檔,并且所述布局構(gòu)建器被配置成遇到打開HTML標(biāo)簽并創(chuàng)建對應(yīng)的框構(gòu)建器類型。
8.權(quán)利要求I所述的一種或多種計算機(jī)可讀存儲媒體,其中所述結(jié)構(gòu)化文檔包括HTML文檔,并且所述布局構(gòu)建器被配置成遇到打開HTML標(biāo)簽并創(chuàng)建對應(yīng)的框構(gòu)建器類型,以及其中所述布局構(gòu)建器被配置成遇到相關(guān)聯(lián)的關(guān)閉HTML標(biāo)簽并促使與對應(yīng)的框構(gòu)建器類型相關(guān)聯(lián)的布局框被附連到顯示樹。
9.一種或多種計算機(jī)可讀存儲媒體,其包含計算機(jī)可執(zhí)行指令,當(dāng)所述指令被執(zhí)行時實(shí)施一種軟件體系結(jié)構(gòu),該軟件體系結(jié)構(gòu)包括 布局構(gòu)建器,被配置成組織HTML文檔的處理; 框構(gòu)建器,其與布局構(gòu)建器相關(guān)聯(lián),并且其代表框構(gòu)建器類型的類;和 一組虛擬函數(shù),其被定義為框構(gòu)建器的類,并被配置成使能HTML文檔的順序的、非遞歸的處理。
10.權(quán)利要求9所述的一種或多種計算機(jī)可讀存儲媒體,其中所述虛擬函數(shù)包括用于初始化框構(gòu)建器并把所述框構(gòu)建器置于當(dāng)前的布局構(gòu)建過程的上下文中的函數(shù)。
11.權(quán)利要求9所述的一種或多種計算機(jī)可讀存儲媒體,其中所述虛擬函數(shù)包括用于請求布局構(gòu)建器要處理的下一個位置的函數(shù)。
12.權(quán)利要求9所述的一種或多種計算機(jī)可讀存儲媒體,其中所述虛擬函數(shù)包括用于請求已存在的框是否可被再次使用于給定的塊的函數(shù)。
13.權(quán)利要求9所述的一種或多種計算機(jī)可讀存儲媒體,其中所述虛擬函數(shù)包括用于請求已存在的框是否可被再次使用于給定的塊的函數(shù),和當(dāng)找到可再次使用的框時被調(diào)用的函數(shù)。
14.權(quán)利要求9所述的一種或多種計算機(jī)可讀存儲媒體,其中所述虛擬函數(shù)包括用于請求已存在的框是否可被再次使用于給定的塊的函數(shù),和當(dāng)沒有找到可再次使用的框時被調(diào)用的函數(shù)。
15.權(quán)利要求9所述的一種或多種計算機(jī)可讀存儲媒體,其中所述虛擬函數(shù)包括用于向父框構(gòu)建器通知相關(guān)聯(lián)的子框能夠被附連到最終得到的顯示樹的函數(shù)。
全文摘要
描述了布局處理技術(shù),所述布局處理技術(shù)允許實(shí)施結(jié)構(gòu)化文檔的處理,以及允許以順序的方式完成相關(guān)聯(lián)的布局。布局過程被分成可以順序地執(zhí)行的多個更小的步驟。在至少一些實(shí)施例中,布局構(gòu)建器被結(jié)合棧使用以控制在結(jié)構(gòu)化文檔的結(jié)構(gòu)層次的各層次上的布局執(zhí)行。不可變的數(shù)據(jù)結(jié)構(gòu)被使用,并且允許順序布局操作的并行執(zhí)行。在至少一些實(shí)施例中,可以完成布局序列的部分執(zhí)行來產(chǎn)生可用的數(shù)據(jù)。
文檔編號G06F17/21GK102804174SQ201180015838
公開日2012年11月28日 申請日期2011年3月24日 優(yōu)先權(quán)日2010年3月25日
發(fā)明者E.N.韋塞羅夫, R.P.阿塔納索夫, M.J.喬爾森 申請人:微軟公司