国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      利用基于DOM的同構(gòu)來備忘緩存Web瀏覽計(jì)算的制作方法

      文檔序號(hào):6495087閱讀:378來源:國知局
      利用基于DOM的同構(gòu)來備忘緩存Web瀏覽計(jì)算的制作方法
      【專利摘要】用于加速瀏覽器對(duì)網(wǎng)頁的渲染的方法和設(shè)備,其存儲(chǔ)所渲染的頁面的文檔對(duì)象模型(DOM)樹結(jié)構(gòu)和計(jì)算,并且將正被渲染的頁面的DOM樹的諸部分進(jìn)行比較以確定這些DOM樹結(jié)構(gòu)是否有部分與之匹配。如果要被渲染的網(wǎng)頁的DOM樹與存儲(chǔ)在存儲(chǔ)器中的DOM樹相匹配,則可從存儲(chǔ)器調(diào)用與匹配DOM樹相關(guān)聯(lián)的計(jì)算,從而避免了對(duì)執(zhí)行計(jì)算以渲染頁面的需要。樹同構(gòu)算法可被用于識(shí)別存儲(chǔ)在存儲(chǔ)器中的、與要被渲染的網(wǎng)頁的DOM樹相匹配的DOM樹。重用渲染計(jì)算可顯著減少為渲染網(wǎng)頁所需要的時(shí)間和資源?;贒OM樹同構(gòu)來標(biāo)識(shí)計(jì)算結(jié)果的可重用部分使瀏覽器即使在URL不匹配時(shí)也能夠重用存儲(chǔ)著的網(wǎng)頁渲染計(jì)算。
      【專利說明】利用基于DOM的同構(gòu)來備忘緩存Web瀏覽計(jì)算
      [0001]相關(guān)申請(qǐng)
      [0002]本申請(qǐng)是2010 年 3 月 24 日提交的題為“Apparatus and Methods for Renderinga Page(用于渲染頁面的裝置和方法)”的美國專利申請(qǐng)N0.12/730,967的部分繼續(xù)申請(qǐng),該美國專利申請(qǐng)要求2009年10月6日提交的題為“Apparatus and Methods of Renderinga Page (渲染頁面的裝置和方法)”的美國臨時(shí)申請(qǐng)N0.61/248,909和2009年3月31日提交的題為“Method and Apparatus for Facilitating Efficient Local Caching (用于促成高效率本地高速緩存的方法和裝置)”的美國臨時(shí)申請(qǐng)N0.61/165,238的優(yōu)先權(quán)權(quán)益,所有這些申請(qǐng)均被轉(zhuǎn)讓給本申請(qǐng)受讓人并且由此通過援引全部納入于此。
      發(fā)明領(lǐng)域
      [0003]以下描述一般涉及計(jì)算設(shè)備通信,并且尤其涉及用于渲染頁面的裝置和方法。
      【背景技術(shù)】
      [0004]在計(jì)算設(shè)備上渲染諸如網(wǎng)頁之類的頁面會(huì)受到該頁面的文檔對(duì)象模型(DOM)樹的影響。DOM樹定義呈子-父關(guān)系的一個(gè)或多個(gè)節(jié)點(diǎn),包括各自相應(yīng)的DOM節(jié)點(diǎn)的性質(zhì)和/或?qū)傩约捌錁邮綄傩?。?dāng)頁面被啟動(dòng)時(shí),其.html文件被從高速緩存讀取、解析,DOM樹被構(gòu)造,并且隨后嵌入式或外部級(jí)聯(lián)樣式表(css)被應(yīng)用。每當(dāng)頁面被加載時(shí)都要執(zhí)行這些操作,這花費(fèi)了大量時(shí)間,由此導(dǎo)致用戶體驗(yàn)不盡人意。
      [0005]不僅如此,在資源受約束的環(huán)境中,諸如對(duì)于移動(dòng)計(jì)算設(shè)備(例如,與非移動(dòng)計(jì)算設(shè)備相比具有相對(duì)有限的處理能力、存儲(chǔ)器和/或通信吞吐量的移動(dòng)電話、個(gè)人數(shù)字助理(PDA)或其他相對(duì)較小的便攜式設(shè)備)而言,加劇了此時(shí)間量。因此,對(duì)于移動(dòng)計(jì)算設(shè)備而言,用戶體驗(yàn)甚至更差。
      [0006]因此,希望改善頁面的渲染。
      [0007]概述
      [0008]以下給出一個(gè)或多個(gè)方面的簡要概述以提供對(duì)這些方面的基本理解。此概述不是所有構(gòu)想到的方面的詳盡綜覽,并且既非旨在標(biāo)識(shí)出所有方面的關(guān)鍵性或決定性要素亦非試圖界定任何或所有方面的范圍。其唯一的目的是要以簡化形式給出一個(gè)或多個(gè)方面的一些概念以作為稍后給出的更加詳細(xì)的描述之序。
      [0009]一個(gè)方面涉及用于在計(jì)算機(jī)設(shè)備上渲染頁面的方法。該方法可包括在計(jì)算機(jī)設(shè)備處接收對(duì)所請(qǐng)求的頁面實(shí)例的請(qǐng)求。另外,該方法可包括確定所請(qǐng)求的頁面實(shí)例是否對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的關(guān)于該頁面的文檔對(duì)象模型(D0M)。存儲(chǔ)在存儲(chǔ)器中的DOM對(duì)應(yīng)于存儲(chǔ)著的頁面實(shí)例并且包括對(duì)于存儲(chǔ)著的頁面實(shí)例和所請(qǐng)求的頁面實(shí)例兩者而言相同的靜態(tài)部分。另外,該方法還可包括如果所請(qǐng)求的頁面實(shí)例對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的DOMJlJ檢索該DOM的與所請(qǐng)求的實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分。該動(dòng)態(tài)部分是所請(qǐng)求的頁面實(shí)例所獨(dú)有的。另外,該方法可包括將該DOM的與所請(qǐng)求的頁面實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分與該DOM的靜態(tài)部分關(guān)聯(lián)地存儲(chǔ)。[0010]另一方面涉及被配置成在計(jì)算機(jī)設(shè)備上渲染頁面的至少一個(gè)處理器。該處理器可包括用于在計(jì)算機(jī)設(shè)備處接收對(duì)所請(qǐng)求的頁面實(shí)例的請(qǐng)求的第一模塊。該處理器還可包括用于確定所請(qǐng)求的頁面實(shí)例是否對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的關(guān)于該頁面的文檔對(duì)象模型(DOM)的第二模塊。存儲(chǔ)在存儲(chǔ)器中的DOM對(duì)應(yīng)于存儲(chǔ)著的頁面實(shí)例并且包括對(duì)于存儲(chǔ)著的頁面實(shí)例和所請(qǐng)求的頁面實(shí)例兩者而言相同的靜態(tài)部分。另外,該處理器可包括用于如果所請(qǐng)求的頁面實(shí)例對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的DOM則檢索該DOM的與所請(qǐng)求的實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分的第三模塊。該動(dòng)態(tài)部分是所請(qǐng)求的頁面實(shí)例所獨(dú)有的。該處理器還可包括用于將該DOM的與所請(qǐng)求的頁面實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分與該DOM的靜態(tài)部分關(guān)聯(lián)地存儲(chǔ)的第四模塊。
      [0011]又一方面涉及用于在計(jì)算機(jī)設(shè)備上渲染頁面的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn)品可包括計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)至少包括用于使計(jì)算機(jī)在計(jì)算機(jī)設(shè)備處接收對(duì)所請(qǐng)求的頁面實(shí)例的請(qǐng)求的指令。該計(jì)算機(jī)可讀介質(zhì)還可包括用于使計(jì)算機(jī)確定所請(qǐng)求的頁面實(shí)例是否對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的關(guān)于該頁面的文檔對(duì)象模型(DOM)的至少一條指令。存儲(chǔ)在存儲(chǔ)器中的DOM對(duì)應(yīng)于存儲(chǔ)著的頁面實(shí)例并且包括對(duì)于存儲(chǔ)著的頁面實(shí)例和所請(qǐng)求的頁面實(shí)例兩者而言相同的靜態(tài)部分。該計(jì)算機(jī)可讀介質(zhì)可進(jìn)一步包括用于如果所請(qǐng)求的頁面實(shí)例對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的DOM則使計(jì)算機(jī)檢索該DOM的與所請(qǐng)求的實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分的至少一條指令。該動(dòng)態(tài)部分是所請(qǐng)求的頁面實(shí)例所獨(dú)有的。另外,該計(jì)算機(jī)可讀介質(zhì)還可包括用于使計(jì)算機(jī)將該DOM的與所請(qǐng)求的頁面實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分與該DOM的靜態(tài)部分關(guān)聯(lián)地存儲(chǔ)的至少一條指令。
      [0012]另一方面涉及一種設(shè)備。該設(shè)備可包括用于在計(jì)算機(jī)設(shè)備處接收對(duì)所請(qǐng)求的頁面實(shí)例的請(qǐng)求的裝置。另外,該設(shè)備可包括用于確定所請(qǐng)求的頁面實(shí)例是否對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的關(guān)于該頁面的文檔對(duì)象模型(DOM)的裝置。存儲(chǔ)在存儲(chǔ)器中的DOM對(duì)應(yīng)于存儲(chǔ)著的頁面實(shí)例并且包括對(duì)于存儲(chǔ)著的頁面實(shí)例和所請(qǐng)求的頁面實(shí)例兩者而言相同的靜態(tài)部分。該設(shè)備還可包括用于如果所請(qǐng)求的頁面實(shí)例對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的DOM則檢索該DOM的與所請(qǐng)求的實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分的裝置。該動(dòng)態(tài)部分是所請(qǐng)求的頁面實(shí)例所獨(dú)有的。該設(shè)備可進(jìn)一步包括用于將該DOM的與所請(qǐng)求的頁面實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分與該DOM的靜態(tài)部分關(guān)聯(lián)地存儲(chǔ)的裝置。
      [0013]又一方面涉及用于在計(jì)算機(jī)設(shè)備上渲染頁面的裝置。該裝置可包括門戶組件,該門戶組件被配置成接收對(duì)所請(qǐng)求的頁面實(shí)例的請(qǐng)求。該裝置還可包括web組件,該web組件被配置成確定所請(qǐng)求的頁面實(shí)例是否對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的關(guān)于該頁面的文檔對(duì)象模型(D0M)。存儲(chǔ)在存儲(chǔ)器中的DOM對(duì)應(yīng)于存儲(chǔ)著的頁面實(shí)例并且包括對(duì)于存儲(chǔ)著的頁面實(shí)例和所請(qǐng)求的頁面實(shí)例兩者而言相同的靜態(tài)部分。另外,該裝置可包括被配置成如果所請(qǐng)求的頁面實(shí)例對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的DOM則檢索該DOM的與所請(qǐng)求的實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分的所述web組件。該動(dòng)態(tài)部分是所請(qǐng)求的頁面實(shí)例所獨(dú)有的。該裝置可進(jìn)一步包括被配置成將該DOM的與所請(qǐng)求的頁面實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分與該DOM的靜態(tài)部分關(guān)聯(lián)地存儲(chǔ)的所述web組件。
      [0014]所描述的諸方面涉及用于在計(jì)算機(jī)設(shè)備上渲染頁面的方法、裝置或計(jì)算機(jī)程序產(chǎn)品,包括用于執(zhí)行以下操作的動(dòng)作、裝置或指令:在計(jì)算機(jī)設(shè)備處接收對(duì)所請(qǐng)求的頁面實(shí)例的請(qǐng)求;確定所請(qǐng)求的頁面實(shí)例是否對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的關(guān)于該頁面的文檔對(duì)象模型(DOM),其中存儲(chǔ)在存儲(chǔ)器中的DOM對(duì)應(yīng)于存儲(chǔ)著的頁面實(shí)例并且包括對(duì)于存儲(chǔ)著的頁面實(shí)例和所請(qǐng)求的頁面實(shí)例兩者而言相同的靜態(tài)部分;如果所請(qǐng)求的頁面實(shí)例對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的D0M,則檢索該DOM的與所請(qǐng)求的實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分,其中該動(dòng)態(tài)部分是所請(qǐng)求的頁面實(shí)例所獨(dú)有的;以及將該DOM的與所請(qǐng)求的頁面實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分與該DOM的靜態(tài)部分關(guān)聯(lián)地存儲(chǔ);并且可任選地包括用于根據(jù)DOM的靜態(tài)部分和該DOM的與所請(qǐng)求的頁面實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分來渲染所請(qǐng)求的頁面實(shí)例的動(dòng)作、裝置或指令。
      [0015]其他方面涉及通過將存儲(chǔ)著的頁面渲染計(jì)算與DOM樹結(jié)構(gòu)相關(guān)聯(lián)并藉由識(shí)別存儲(chǔ)著的與要被渲染的頁面的DOM樹的至少一部分相匹配的DOM樹模式來標(biāo)識(shí)可重用的計(jì)算的方式,來重用web瀏覽器的計(jì)算。這些方面通過除了傳統(tǒng)的對(duì)HTML數(shù)據(jù)的高速緩存之外還使得能夠重用HTML處理計(jì)算,以使得即使在所保存的計(jì)算的頁面URL與要被渲染的當(dāng)前頁面不同時(shí)也可在渲染未來頁面時(shí)重用這些HTLM處理計(jì)算的方式,來改善瀏覽器的性能。在此類方面,用于在計(jì)算設(shè)備上渲染頁面的方法可包括在計(jì)算設(shè)備的處理器中接收顯示網(wǎng)頁的請(qǐng)求;接收與所請(qǐng)求的網(wǎng)頁相對(duì)應(yīng)的HTML代碼;解析接收到的HTML代碼以生成文檔對(duì)象模型(DOM)樹;確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu);當(dāng)確定所生成的DOM樹的一部分與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)時(shí)從存儲(chǔ)器檢索先前存儲(chǔ)著的與DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算;使用檢索到的計(jì)算來構(gòu)成所請(qǐng)求的網(wǎng)頁;以及在計(jì)算設(shè)備的電子顯示器上顯示所請(qǐng)求的網(wǎng)頁。在此類方法中,確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)可包括通過使用樹同構(gòu)比較算法來將所生成的DOM樹與存儲(chǔ)在存儲(chǔ)器中的DOM樹結(jié)構(gòu)作比較;確定所生成的DOM樹的所述部分是否具有與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分相同的結(jié)構(gòu),或者確定所生成的DOM樹的所述部分是否在結(jié)構(gòu)上類似于存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分。在一方面,從存儲(chǔ)器檢索先前存儲(chǔ)著的與DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算可包括訪問存儲(chǔ)DOM樹的這些部分的計(jì)算結(jié)果的高速緩存機(jī)構(gòu),以使得所述計(jì)算結(jié)果基于與DOM樹的諸部分相對(duì)應(yīng)的DOM子樹結(jié)構(gòu)按照計(jì)算出的散列值來索引。
      [0016]在一方面,該方法可進(jìn)一步包括確定用于創(chuàng)建存儲(chǔ)器中的DOM樹的計(jì)算結(jié)果的鍵值和輸入值是否等于所生成的DOM樹的鍵值和輸入值,在這種情形中,可僅在確定了用于創(chuàng)建存儲(chǔ)器中的DOM樹的計(jì)算結(jié)果的鍵值和輸入值等于所生成的DOM樹的鍵值和輸入值時(shí)才執(zhí)行從存儲(chǔ)器檢索先前存儲(chǔ)著的與DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算的操作。另外,該方法可進(jìn)一步包括在確定了所生成的DOM樹與存儲(chǔ)在存儲(chǔ)器中的DOM樹的這一個(gè)或多個(gè)部分中的任何部分均不同構(gòu)時(shí)完成對(duì)所生成的DOM樹的HTML代碼計(jì)算,并且在存儲(chǔ)器中存儲(chǔ)用所生成的DOM樹來索引的HTML計(jì)算結(jié)果。在此類方面,存儲(chǔ)所生成的DOM樹可包括在鍵-值數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所生成的DOM樹的至少一部分,其中DOM樹元素與相應(yīng)的HTML計(jì)算結(jié)果相關(guān)聯(lián)地存儲(chǔ),在這種情形中,結(jié)構(gòu)化的高速緩存可使用散列映射數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn),并且鍵-值數(shù)據(jù)結(jié)構(gòu)可包括散列映射數(shù)據(jù)結(jié)構(gòu)。在此類方面,從存儲(chǔ)器檢索先前存儲(chǔ)著的計(jì)算可包括評(píng)估與存儲(chǔ)著的DOM樹中的和所生成的DOM樹的所述部分同構(gòu)的那些節(jié)點(diǎn)相關(guān)聯(lián)的散列鍵。
      [0017]其他方面涉及包括處理器的計(jì)算設(shè)備,該處理器被配置有用于執(zhí)行上述方法的操作的處理器可執(zhí)行指令。另一些方面涉及包括用于達(dá)成上述方法的功能的裝置的計(jì)算設(shè)備。又一些方面涉及其上存儲(chǔ)有處理器可執(zhí)行指令的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),這些指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行上述方法的諸操作。
      [0018]為能達(dá)成前述及相關(guān)目的,這一個(gè)或多個(gè)方面包括在下文中充分描述并在所附權(quán)利要求中特別指出的特征。以下描述和附圖詳細(xì)闡述了這一個(gè)或多個(gè)方面的某些解說性特征。但是,這些特征僅僅是指示了可采用各種方面的原理的各種方式中的若干種,并且本描述旨在涵蓋所有此類方面及其等效方案。
      【專利附圖】

      【附圖說明】
      [0019]納入本文并構(gòu)成本說明書的一部分的附圖解說了本發(fā)明的示例性方面。這些附圖與以上給出的一般描述以及下文給出的詳細(xì)描述一道用于解釋本發(fā)明的特征而不是限定所公開的諸方面。
      [0020]圖1是用于渲染頁面的系統(tǒng)的一方面的示意圖。
      [0021]圖2是共享DOM的一方面的示意圖。
      [0022]圖3是圖1的計(jì)算機(jī)設(shè)備的一方面的示意圖。
      [0023]圖4是渲染頁面的方法的一方面的流程圖。
      [0024]圖5是渲染第一頁面實(shí)例的一方面的流程圖。
      [0025]圖6是渲染第二頁面實(shí)例的一方面的流程圖。
      [0026]圖7是根據(jù)一方面的用于促成高效率本地高速緩存的示例性方法。
      [0027]圖8是根據(jù)一方面的用于在高速緩存中進(jìn)行存儲(chǔ)之前通過處理指令來促成內(nèi)容修改的示例性方法。
      [0028]圖9是根據(jù)一方面的用于在高速緩存中促成結(jié)構(gòu)化存儲(chǔ)的示例性方法。
      [0029]圖10是根據(jù)一方面的示例主頁面的示意圖。
      [0030]圖11是根據(jù)一方面的示例目錄頁面的示意圖。
      [0031]圖12是根據(jù)一方面的商品詳情頁面的示例的示意圖。
      [0032]圖13是根據(jù)一方面的商品詳情頁面的另一示例的示意圖。
      [0033]圖14是用于渲染頁面的裝置的一方面的示意圖。
      [0034]圖15是通過瀏覽器解析所請(qǐng)求的網(wǎng)頁的HTML代碼所生成的樣本DOM樹的示意圖。
      [0035]圖16是具有為每個(gè)節(jié)點(diǎn)存儲(chǔ)的計(jì)算值的樣本DOM樹的示意圖。
      [0036]圖17是用于在瀏覽器的首次執(zhí)行時(shí)和/或具有未標(biāo)識(shí)出的DOM結(jié)構(gòu)的網(wǎng)頁首次出現(xiàn)時(shí)創(chuàng)建、處理和存儲(chǔ)DOM樹的方法的一方面的流程圖。
      [0037]圖18是用于在瀏覽器的后續(xù)執(zhí)行時(shí)創(chuàng)建、處理、存儲(chǔ)、和/或檢索DOM樹的諸部分的方法的一方面的流程圖。
      [0038]圖19是用于在瀏覽器的后續(xù)執(zhí)行時(shí)創(chuàng)建、處理、存儲(chǔ)、和/或檢索DOM樹的諸部分的方法的另一方面的流程圖。
      [0039]圖20是適用于各種實(shí)施例的示例接收機(jī)設(shè)備的組件框圖。
      [0040]圖21是適用于各種實(shí)施例的示例服務(wù)器的組件框圖。
      【具體實(shí)施方式】
      [0041]現(xiàn)在參照附圖描述各個(gè)方面。在以下描述中,出于解釋目的闡述了眾多具體細(xì)節(jié)以提供對(duì)一個(gè)或更多個(gè)方面的透徹理解。但是顯然的是,沒有這些具體細(xì)節(jié)也可實(shí)踐此(諸)方面。
      [0042]所描述的諸方面涉及獲取和渲染頁面,諸如具有web資源和數(shù)據(jù)項(xiàng)的網(wǎng)頁。另外,所描述的諸方面提供了在網(wǎng)頁之間轉(zhuǎn)換的虛擬效果,例如,為用戶提供鏈接以在網(wǎng)頁之間來回移動(dòng)。網(wǎng)頁是根據(jù)相應(yīng)的文檔對(duì)象模型(DOM)來渲染的,該DOM定義了定義頁面的各個(gè)組件的組件、相對(duì)結(jié)構(gòu)、以及行為。相同頁面的不同實(shí)例可共享DOM的一些共有部分,而同時(shí)具有將頁面的一個(gè)實(shí)例與下一實(shí)例區(qū)分開來的其他獨(dú)有部分。
      [0043]根據(jù)一個(gè)或多個(gè)方面,用于渲染頁面的裝置和方法提供了可操作用于創(chuàng)建可由頁面的兩個(gè)或更多個(gè)實(shí)例使用的共享DOM的web引擎或其他組件。此共享DOM包括頁面的不同實(shí)例共有的靜態(tài)DOM部分,以及該頁面的相應(yīng)一個(gè)或多個(gè)實(shí)例所獨(dú)有的一個(gè)或多個(gè)動(dòng)態(tài)DOM部分。由此,所描述的方面通過在渲染頁面的新實(shí)例時(shí)重用與存儲(chǔ)著的或高速緩存著的DOM (該DOM可基于相同頁面的先前處理過的不同實(shí)例)相對(duì)應(yīng)的靜態(tài)DOM部分來改善頁面渲染的效率,由此避免了不得不為頁面的每個(gè)實(shí)例創(chuàng)建完全新的D0M。
      [0044]例如,這些方面可參照諸如由移動(dòng)電話執(zhí)行的移動(dòng)購物應(yīng)用之類的使用情形來描述。然而,應(yīng)當(dāng)理解,此示例使用情形僅是為解說目的,并且存在許多其他使用情形。在移動(dòng)購物應(yīng)用示例中,與移動(dòng)購物應(yīng)用相對(duì)應(yīng)的網(wǎng)頁可包括不同類型頁面的樹或階層,諸如具有目錄列表的主頁面、具有商品列表和/或其他目錄列表的一個(gè)或多個(gè)目錄頁面、以及還可鏈接至其他商品詳情頁面的一個(gè)或多個(gè)商品詳情頁面、和/或諸如定價(jià)或購買頁面之類的附加詳情頁面。相同頁面的不同實(shí)例(諸如第一游戲的商品詳情頁面和第二游戲的商品詳情頁面)可共享類似的結(jié)構(gòu)并可能共享一些類似的數(shù)據(jù),但是它們還可各自具有獨(dú)有的數(shù)據(jù)(諸如每個(gè)相應(yīng)游戲的名稱)。由此,通常,每個(gè)商品詳情頁面具有不同的相應(yīng)的D0M。然而,在本申請(qǐng)的諸方面,商品詳情頁面取而代之具有共享D0M,該共享DOM包括與該頁面的不同實(shí)例之間共有的DOM元素相對(duì)應(yīng)的靜態(tài)DOM部分、以及將獨(dú)有數(shù)據(jù)項(xiàng)與該頁面的相應(yīng)實(shí)例相關(guān)聯(lián)的一個(gè)或多個(gè)動(dòng)態(tài)DOM部分。例如,在這種情形中,靜態(tài)DOM部分可包括第一游戲商品詳情頁面和第二游戲商品詳情頁面的相同布局,而各動(dòng)態(tài)數(shù)據(jù)項(xiàng)(諸如第一游戲名稱和第二游戲名稱)則由動(dòng)態(tài)DOM部分來表示。
      [0045]換言之,在一方面,當(dāng)頁面的獨(dú)特實(shí)例(例如,“商品詳情”頁面)從未在計(jì)算機(jī)設(shè)備上被取回或高速緩存、并且該頁面的該實(shí)例被請(qǐng)求時(shí),所描述的諸方面提供導(dǎo)致取回頁面數(shù)據(jù)(例如,包括超文本標(biāo)記語言(html)或可擴(kuò)展html (xhtml))、級(jí)聯(lián)樣式表(css)、和JavaScript (js))并且從xhtml和css創(chuàng)建文檔對(duì)象模型(DOM)的靜態(tài)部分的行為。DOM的此靜態(tài)部分被存儲(chǔ)在高速緩存中并且可被重用。對(duì)于該頁面,隨后執(zhí)行js,從而導(dǎo)致一個(gè)或多個(gè)數(shù)據(jù)請(qǐng)求(例如,XMLHttp請(qǐng)求(XHR))。初始的js和對(duì)一個(gè)或多個(gè)響應(yīng)中的每一個(gè)響應(yīng)的處置導(dǎo)致為頁面的該實(shí)例創(chuàng)建DOM的一個(gè)或多個(gè)動(dòng)態(tài)部分。隨后,當(dāng)該頁面的第二實(shí)例被請(qǐng)求時(shí),靜態(tài)DOM部分可被重用,并且為該請(qǐng)求的與頁面的第二實(shí)例相對(duì)應(yīng)的新查詢字符串執(zhí)行js,從而導(dǎo)致一個(gè)或多個(gè)新數(shù)據(jù)請(qǐng)求以及為該頁面的新實(shí)例創(chuàng)建DOM的一個(gè)或多個(gè)動(dòng)態(tài)部分。作為結(jié)果,共享DOM包括至少一個(gè)靜態(tài)部分和一個(gè)或多個(gè)動(dòng)態(tài)部分,從而使DOM能夠定義供在渲染該頁面的不同實(shí)例時(shí)使用的共享D0M。
      [0046]因此,在一方面,對(duì)DOM的初始或靜態(tài)狀態(tài)或部分的重用減少了頁面轉(zhuǎn)換時(shí)間。在一個(gè)或多個(gè)方面,狀態(tài)或DOM部分重用可通過維護(hù)分開的(或者替換地集成的)、與DOM的靜態(tài)和動(dòng)態(tài)狀態(tài)或諸部分相對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)來達(dá)成。
      [0047]另外,在一個(gè)或多個(gè)方面,一個(gè)或多個(gè)優(yōu)點(diǎn)可包括:由于僅復(fù)制屬性表,因而沒有存儲(chǔ)器開銷或者存儲(chǔ)器開銷較??;由于僅發(fā)生一次對(duì)HTML的解析和對(duì)CSS規(guī)則的應(yīng)用,因而頁面加載很快;由于不需要為相同頁面的不同實(shí)例創(chuàng)建不同的D0M,因而與其他實(shí)現(xiàn)相比具有更干凈和復(fù)雜性更低的代碼;由于鑒于靜態(tài)DOM部分不變,渲染可集中在更新各動(dòng)態(tài)DOM部分上,因而不需要對(duì)DOM樹的額外走查;并且動(dòng)態(tài)屬性是在頁面加載之際按需要來創(chuàng)建的,且在導(dǎo)航回到該頁面的實(shí)例之際在對(duì)DOM的現(xiàn)有走查上被移除。
      [0048]可任選地,在一些方面,DOM和相應(yīng)的頁面內(nèi)容可被高速緩存,并且高速緩存可包括推導(dǎo)式高速緩存或結(jié)構(gòu)化高速緩存。推導(dǎo)式高速緩存可存儲(chǔ)從接收到的內(nèi)容推導(dǎo)的內(nèi)容。例如,在一個(gè)方面,一旦接收到原始內(nèi)容(諸如但不限于xhtml、級(jí)聯(lián)樣式表或javascript),計(jì)算機(jī)設(shè)備就可進(jìn)一步處理該原始內(nèi)容以生成推導(dǎo)式內(nèi)容。例如,在一方面,應(yīng)當(dāng)領(lǐng)會(huì),推導(dǎo)式內(nèi)容可包括DOM的靜態(tài)部分,例如,DOM的靜態(tài)部分可從接收到的xhtml和css創(chuàng)建和/或推導(dǎo)??捎捎跒樯赏茖?dǎo)式內(nèi)容所花費(fèi)的資源相對(duì)昂貴而確定將推導(dǎo)式內(nèi)容例如存儲(chǔ)在推導(dǎo)式高速緩存中。在一個(gè)方面,對(duì)推導(dǎo)式內(nèi)容的這種高速緩存可通過使用此預(yù)先準(zhǔn)備的推導(dǎo)式內(nèi)容(諸如如果該內(nèi)容被頻繁地使用)來輔助高效率地促成對(duì)經(jīng)高速緩存內(nèi)容的后續(xù)使用。
      [0049]推導(dǎo)式內(nèi)容的另一示例可包括計(jì)算機(jī)設(shè)備取回在從高速緩存檢索時(shí)要被運(yùn)行的程序。計(jì)算機(jī)設(shè)備可編譯所取回的程序,而不是每當(dāng)計(jì)算機(jī)設(shè)備從高速緩存檢索該程序時(shí)編譯所取回的程序。經(jīng)編譯的程序(或即推導(dǎo)式內(nèi)容)可存儲(chǔ)在推導(dǎo)式高速緩存中準(zhǔn)備好供后續(xù)使用。另外,推導(dǎo)式內(nèi)容可與接收到的源相關(guān)聯(lián)。
      [0050]在另一方面,計(jì)算機(jī)設(shè)備高速緩存還可包括結(jié)構(gòu)化的高速緩存。結(jié)構(gòu)化的高速緩存允許以如下方式來存儲(chǔ)內(nèi)容:檢索程序或類似物可選擇性地選取高速緩存著的內(nèi)容的有用部分供檢索。例如,在沒有本發(fā)明的裝置和方法的情況下,高速緩存著的內(nèi)容可能看起來是語義不透明的內(nèi)容,由此阻礙了對(duì)高速緩存著的內(nèi)容的諸部分的選擇性檢索。在一個(gè)方面,結(jié)構(gòu)化高速緩存可按如下方式來組織:允許檢索存儲(chǔ)在結(jié)構(gòu)化高速緩存中的內(nèi)容項(xiàng)的選定的已知部分而不需要檢索整個(gè)內(nèi)容項(xiàng)。
      [0051]例如,假定具有眾所周知結(jié)構(gòu)的內(nèi)容(諸如java script對(duì)象表示法(JSON)內(nèi)容)被存儲(chǔ)在結(jié)構(gòu)化高速緩存中。進(jìn)一步假定程序或類似物僅可使用該JSON內(nèi)容的一小部分,諸如與制造商、標(biāo)題、或類似物相關(guān)聯(lián)的內(nèi)容。結(jié)構(gòu)化高速緩存允許僅選擇性地移除對(duì)于該程序有用的內(nèi)容部分,由此減少可能本來要求的任何中間處理。
      [0052]在另一示例中,內(nèi)容提供商可用向計(jì)算機(jī)設(shè)備傳送的內(nèi)容來引入由發(fā)源服務(wù)器生成的入口點(diǎn)。由此,當(dāng)具有由發(fā)源服務(wù)器生成的入口點(diǎn)的內(nèi)容被存儲(chǔ)在結(jié)構(gòu)化高速緩存中時(shí),可促成對(duì)由這些入口點(diǎn)定義的部分的后續(xù)移除。
      [0053]可任選地,在一些方面,所描述的裝置和方法可進(jìn)一步包括可在接收到對(duì)頁面的請(qǐng)求之前執(zhí)行以取回和處理該頁面的預(yù)取操作。
      [0054]可任選地,在一些方面,所描述的裝置和方法可進(jìn)一步包括可在接收到對(duì)頁面的請(qǐng)求之前執(zhí)行以將網(wǎng)頁解析成DOM并且高速緩存相應(yīng)的DOM的預(yù)推導(dǎo)操作。
      [0055]可任選地,在一些方面,所描述的裝置和方法可進(jìn)一步包括預(yù)取和預(yù)推導(dǎo)操作兩者。[0056]預(yù)取操作和/或預(yù)推導(dǎo)操作可進(jìn)一步增加渲染頁面實(shí)例的速度,由此改善從一個(gè)頁面轉(zhuǎn)換至另一個(gè)頁面時(shí)的用戶體驗(yàn)。
      [0057]在另一方面,用于加速瀏覽器對(duì)網(wǎng)頁的渲染的方法和設(shè)備存儲(chǔ)所渲染的頁面的文檔對(duì)象模型(DOM)樹結(jié)構(gòu)和計(jì)算,并且將正在渲染的頁面的DOM樹的諸部分進(jìn)行比較以該DOM樹結(jié)構(gòu)是否有部分與之匹配。如果要被渲染的網(wǎng)頁的DOM樹與存儲(chǔ)在存儲(chǔ)器中的DOM樹相匹配,則可從存儲(chǔ)器重調(diào)用與匹配DOM樹相關(guān)聯(lián)的計(jì)算,從而避免了對(duì)執(zhí)行計(jì)算以渲染頁面的需要。樹同構(gòu)算法可被用于識(shí)別存儲(chǔ)在存儲(chǔ)器中的、與要被渲染的網(wǎng)頁的DOM樹相匹配的DOM樹。如以上所討論的,重用渲染計(jì)算可顯著減少為渲染網(wǎng)頁所需要的時(shí)間和資源?;贒OM樹同構(gòu)來標(biāo)識(shí)計(jì)算結(jié)果的可重用部分使得即使在URL不匹配時(shí)瀏覽器也能夠重用存儲(chǔ)著的網(wǎng)頁渲染計(jì)算,由此增加了可由瀏覽器重用的渲染計(jì)算的量。
      [0058]因此,本發(fā)明的諸方面可通過重用DOM的靜態(tài)部分來高效率地渲染頁面的不同實(shí)例,由此節(jié)省處理資源或通信資源或者兩者。
      [0059]如本申請(qǐng)中所使用的,術(shù)語“組件”、“模塊”、“系統(tǒng)”及類似術(shù)語旨在包括計(jì)算機(jī)相關(guān)實(shí)體,諸如但并不限于硬件、固件、硬件與軟件的組合、軟件、或執(zhí)行中的軟件。例如,組件可以是但不限于在處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行件、執(zhí)行的線程、程序、和/或計(jì)算機(jī)。作為解說,在計(jì)算設(shè)備上運(yùn)行的應(yīng)用和該計(jì)算設(shè)備兩者皆可以是組件。一個(gè)或多個(gè)組件可駐留在進(jìn)程和/或執(zhí)行的線程內(nèi),且組件可以本地化在一臺(tái)計(jì)算機(jī)上和/或分布在兩臺(tái)或更多臺(tái)計(jì)算機(jī)之間。此外,這些組件能從其上存儲(chǔ)著各種數(shù)據(jù)結(jié)構(gòu)的各種計(jì)算機(jī)可讀介質(zhì)來執(zhí)行。這些組件可藉由本地和/或遠(yuǎn)程進(jìn)程來通信,諸如根據(jù)具有一個(gè)或多個(gè)數(shù)據(jù)分組的信號(hào)來通信,這樣的數(shù)據(jù)分組諸如是來自藉由該信號(hào)與本地系統(tǒng)、分布式系統(tǒng)中另一組件交互的、和/或跨諸如因特網(wǎng)之類的網(wǎng)絡(luò)與其他系統(tǒng)交互的一個(gè)組件的數(shù)據(jù)。
      [0060]另外,本文結(jié)合終端來描述各個(gè)方面,終端可以是有線終端或無線終端。終端也可被稱為系統(tǒng)、設(shè)備、訂戶單元、訂戶站、移動(dòng)站、移動(dòng)臺(tái)、移動(dòng)設(shè)備、遠(yuǎn)程站、遠(yuǎn)程終端、接入終端、用戶終端、終端、通信設(shè)備、用戶代理、用戶設(shè)備、或用戶裝備(UE)。無線終端可以是蜂窩電話、衛(wèi)星電話、無繩電話、會(huì)話發(fā)起協(xié)議(SIP)電話、無線本地環(huán)路(WLL)站、個(gè)人數(shù)字助理(PDA)、具有無線連接能力的手持式設(shè)備、計(jì)算設(shè)備、或連接到無線調(diào)制解調(diào)器的其他處理設(shè)備。此外,本文結(jié)合基站來描述各個(gè)方面?;究捎糜谂c無線終端進(jìn)行通信,且也可被稱為接入點(diǎn)、B節(jié)點(diǎn)、或其它某個(gè)術(shù)語。
      [0061]另外,措詞“示例性的”在本文中被用于表示用作示例、實(shí)例或解說。本文中描述為“示例性”的任何方面或設(shè)計(jì)不必被解釋為優(yōu)于或勝過其他方面或設(shè)計(jì)。相反,詞語“示例性”的使用旨在以具體方式給出概念。此外,術(shù)語“或”旨在表示包含性“或”而非排他性“或”。即,除非另外指明或從上下文能清楚地看出,否則短語“X采用A或B”旨在表示任何自然的可兼排列。即,短語“X采用A或B”藉由以下實(shí)例中任何實(shí)例得到滿足:X采用A ;X采用B;或X采用A和B兩者。另外,本申請(qǐng)和所附權(quán)利要求書中所用的冠詞“一”和“某”一般應(yīng)當(dāng)被理解成表示“一個(gè)或多個(gè)”,除非另外聲明或者可從上下文中清楚看出是指單數(shù)形式。
      [0062]本文中所描述的技術(shù)可用于各種無線通信系統(tǒng),諸如CDMA、TDMA, FDMA, OFDMA,SC-FDMA和其他系統(tǒng)。術(shù)語“系統(tǒng)”和“網(wǎng)絡(luò)”常被可互換地使用。CDMA系統(tǒng)可實(shí)現(xiàn)諸如通用地面無線電接入(UTRA)、cdma2000等無線電技術(shù)。UTRA包括寬帶CDMA (W-CDMA)和其他CDMA變體。另外,cdma2000涵蓋IS-2000、IS-95和IS-856標(biāo)準(zhǔn)。TDMA系統(tǒng)可實(shí)現(xiàn)諸如全球移動(dòng)通信系統(tǒng)(GSM)之類的無線電技術(shù)。OFDMA系統(tǒng)可實(shí)現(xiàn)諸如演進(jìn)型UTRA (E-UTRA)、超移動(dòng)寬帶(UMB)、IEEE802.11 (W1-Fi )、ΙΕΕΕ802.16 (WiMAX)、IEEE802.20、Flash_0FDM 等無線電技術(shù)。UTRA和E-UTRA是通用移動(dòng)電信系統(tǒng)(UMTS)的部分。3GPP長期演進(jìn)(LTE)是使用E-UTRA的UMTS版本,其在下行鏈路上采用OFDMA而在上行鏈路上采用SC-FDMA。UTRA,E-UTRA、UMTS、LTE以及GSM在來自名為“第三代伙伴項(xiàng)目”(3GPP)的組織的文檔中進(jìn)行了描述。另外,cdma2000和UMB在來自名為“第三代伙伴項(xiàng)目2”(3GPP2)的組織的文獻(xiàn)中描述。此外,此類無線通信系統(tǒng)還可另外包括常使用非配對(duì)無執(zhí)照頻譜、802.XX無線LAN、藍(lán)牙以及任何其他短程或長程無線通信技術(shù)的對(duì)等(例如,移動(dòng)對(duì)移動(dòng))自組織(ad hoc)網(wǎng)絡(luò)系統(tǒng)。
      [0063]各個(gè)方面或特征將以可包括數(shù)個(gè)設(shè)備、組件、模塊、及類似物的系統(tǒng)的形式來呈現(xiàn)。將理解和領(lǐng)會(huì),各種系統(tǒng)可包括附加設(shè)備、組件、模塊等,和/或可以并不包括結(jié)合附圖所討論的設(shè)備、組件、模塊等的全體。也可以使用這些辦法的組合。
      [0064]參照?qǐng)D1,在一個(gè)方面,用于渲染諸如網(wǎng)頁之類的頁面的裝置和方法包括具有門戶組件12的計(jì)算機(jī)設(shè)備10,該門戶組件12與web引擎14交互以使得能夠在顯示器15上渲染諸如網(wǎng)頁之類的頁面13的一個(gè)或多個(gè)實(shí)例。例如,所顯示的頁面13可經(jīng)由通信網(wǎng)絡(luò)17從web服務(wù)器16和數(shù)據(jù)服務(wù)器18獲得??梢允欠珠_的或者是集成的組件的web服務(wù)器16和數(shù)據(jù)服務(wù)器18分別存儲(chǔ)分別定義第一頁面實(shí)例28和第二頁面實(shí)例30的web資源20和22以及數(shù)據(jù)項(xiàng)24和26。例如,web資源20和22可包括為構(gòu)造頁面的靜態(tài)部分所需要的任何東西(例如,可用數(shù)據(jù)填充的空頁面模板),而數(shù)據(jù)項(xiàng)24和26可包括用于填充頁面的任何內(nèi)容(例如,頁面的一個(gè)或多個(gè)動(dòng)態(tài)部分)。由此,web資源20和22的全部或一些部分是為第一頁面實(shí)例28和第二頁面實(shí)例30兩者所共有的,而數(shù)據(jù)項(xiàng)24和26的全部或一些部分是各自相應(yīng)的頁面實(shí)例所獨(dú)有的。
      [0065]更具體地,門戶組件12諸如基于用戶輸入或者門戶組件12的啟動(dòng)來傳達(dá)接收到的請(qǐng)求32,該請(qǐng)求32向web引擎14標(biāo)識(shí)所請(qǐng)求的頁面實(shí)例34。例如,接收到的請(qǐng)求32可包括定義web資源(諸如通用資源定位符(URL))的第一部分,和定義要取回的具體數(shù)據(jù)(諸如查詢字符串)的第二部分。web引擎14包括匹配確定器36,該匹配確定器36執(zhí)行以確定如由請(qǐng)求32標(biāo)識(shí)的所請(qǐng)求的頁面實(shí)例34是否對(duì)應(yīng)于存儲(chǔ)著的關(guān)于該頁面的文檔對(duì)象模型(D0M)38。D0M38定義呈子-父關(guān)系的一個(gè)或多個(gè)節(jié)點(diǎn)的樹或階層,包括各自相應(yīng)的DOM節(jié)點(diǎn)的性質(zhì)和/或?qū)傩约捌錁邮綄傩?,這使得能夠渲染該頁面。如果所請(qǐng)求的頁面實(shí)例34對(duì)應(yīng)于存儲(chǔ)著的D0M38,則迭代器組件40標(biāo)識(shí)D0M38的為所請(qǐng)求的頁面實(shí)例34和一個(gè)或多個(gè)存儲(chǔ)著的頁面實(shí)例44兩者所共有的一個(gè)或多個(gè)靜態(tài)部分42??扇芜x地,應(yīng)當(dāng)注意,D0M38可進(jìn)一步包括因頁面44的這一個(gè)或多個(gè)存儲(chǔ)著的實(shí)例中的每一個(gè)實(shí)例而異的一個(gè)或多個(gè)動(dòng)態(tài)部分46。例如,存儲(chǔ)著的頁面實(shí)例44可對(duì)應(yīng)于第一頁面實(shí)例28,而所請(qǐng)求的頁面實(shí)例34可對(duì)應(yīng)于第二頁面實(shí)例30。另外,基于請(qǐng)求32,迭代器組件40標(biāo)識(shí)、創(chuàng)建和存儲(chǔ)因所請(qǐng)求的頁面實(shí)例34而異的一個(gè)或多個(gè)動(dòng)態(tài)部分48。由此,D0M38定義了頁面的不同實(shí)例之間的關(guān)系,以及為每個(gè)頁面實(shí)例所獨(dú)有的并且進(jìn)一步與由不止一個(gè)頁面實(shí)例共享的一個(gè)或多個(gè)靜態(tài)DOM部分相對(duì)應(yīng)的一個(gè)或多個(gè)相應(yīng)的動(dòng)態(tài)DOM部分。因此,D0M38可被稱為共享D0M,這是因?yàn)镈0M38包括對(duì)于存儲(chǔ)著的頁面實(shí)例44和所請(qǐng)求的頁面實(shí)例44兩者而言相同的靜態(tài)DOM部分。
      [0066]替換地,如果匹配確定器36確定所請(qǐng)求的頁面實(shí)例44并不匹配或者相關(guān)于任何存儲(chǔ)著的D0M,則匹配確定器36操作用于創(chuàng)建和存儲(chǔ)關(guān)于該頁面的新D0M39??删哂信c共享D0M38類似的結(jié)構(gòu)的新D0M39則可稍后由匹配確定器36參考以確定與對(duì)頁面實(shí)例的后續(xù)請(qǐng)求的匹配。
      [0067]在這些方面,共享D0M38可允許更快速地渲染所請(qǐng)求的頁面實(shí)例34,這是因?yàn)閣eb引擎14不需要為與已存儲(chǔ)的DOM相對(duì)應(yīng)的新的頁面實(shí)例重構(gòu)整個(gè)DOM結(jié)構(gòu)。取而代之的是,web引擎14可重用靜態(tài)DOM部分42,并且僅需要執(zhí)行與對(duì)應(yīng)于所請(qǐng)求的頁面實(shí)例34的這一個(gè)或多個(gè)動(dòng)態(tài)DOM部分48有關(guān)的處理。
      [0068]另外,計(jì)算機(jī)設(shè)備10可包括可操作用于執(zhí)行腳本化功能性的腳本化引擎50。例如,web引擎14與腳本化引擎50交互以加載對(duì)應(yīng)于頁面的腳本,該腳本化引擎50執(zhí)行該腳本以注冊(cè)相應(yīng)的腳本功能。響應(yīng)于從web引擎14接收到的加載事件,腳本化引擎50進(jìn)一步運(yùn)行頁面腳本并且生成發(fā)送調(diào)用以發(fā)起對(duì)該網(wǎng)頁實(shí)例的相應(yīng)動(dòng)態(tài)數(shù)據(jù)的取回。另外,在接收到動(dòng)態(tài)數(shù)據(jù)之后,腳本化引擎50可操作用于例如經(jīng)由DOM應(yīng)用程序接口(API)應(yīng)用該數(shù)據(jù)并且將該數(shù)據(jù)寫入相應(yīng)的D0M。相應(yīng)地,基于為相應(yīng)頁面實(shí)例所寫入的動(dòng)態(tài)數(shù)據(jù),web引擎14創(chuàng)建并將一個(gè)或多個(gè)動(dòng)態(tài)DOM部分與各自相應(yīng)的頁面實(shí)例相關(guān)聯(lián)地存儲(chǔ)。
      [0069]另外,計(jì)算機(jī)設(shè)備10包括與web引擎14交互的渲染引擎52。例如,響應(yīng)于來自web引擎14的請(qǐng)求,渲染引擎52可操作用于繪制相應(yīng)頁面的與一個(gè)或多個(gè)靜態(tài)DOM部分相對(duì)應(yīng)和/或與相應(yīng)頁面實(shí)例的一個(gè)或多個(gè)動(dòng)態(tài)DOM部分相對(duì)應(yīng)的一個(gè)或多個(gè)部分。另外,渲染引擎52與顯示器15交互以呈現(xiàn)所繪制的頁面部分,由此呈現(xiàn)相應(yīng)的頁面實(shí)例。
      [0070]因此,通過提供具有共享靜態(tài)部分的D0M,所描述的方面可在取回與每個(gè)新的頁面實(shí)例相對(duì)應(yīng)的web資源時(shí)節(jié)省通信資源,或者所描述的方面可通過重用靜態(tài)DOM部分在創(chuàng)建DOM的諸部分時(shí)節(jié)省處理資源,或者可節(jié)省兩者。
      [0071]參照?qǐng)D2,在一個(gè)方面,共享D0M38可被進(jìn)一步解釋為表示由多個(gè)節(jié)點(diǎn)(諸如節(jié)點(diǎn)62、64、66、68、70和72)定義的模板結(jié)構(gòu)60并且進(jìn)一步表示不同的頁面實(shí)例(諸如第一頁面實(shí)例28、第二頁面實(shí)例30和第三頁面實(shí)例74)。每個(gè)頁面實(shí)例(例如,28、30和74)共享一個(gè)或多個(gè)共同節(jié)點(diǎn),諸如節(jié)點(diǎn)62、64、66、68和70。然而,分別與每個(gè)頁面實(shí)例的每個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的頁面數(shù)據(jù)可以不同。例如,頁面數(shù)據(jù)82、84、86、88和90分別對(duì)應(yīng)于第一頁面實(shí)例28的節(jié)點(diǎn)62、64、66、68和70,而頁面數(shù)據(jù)92、94、96、98和100分別對(duì)應(yīng)于第二頁面實(shí)例30的節(jié)點(diǎn)62、64、66、68和70,而頁面數(shù)據(jù)102、104、106、108和110分別對(duì)應(yīng)于第三頁面實(shí)例74的節(jié)點(diǎn)62、64、66、68和70.另外,應(yīng)當(dāng)注意,一些頁面實(shí)例可具有比其他頁面實(shí)例多或者少的節(jié)點(diǎn)。例如,在圖2中,第三頁面實(shí)例74包括具有相應(yīng)頁面數(shù)據(jù)112的在任何其他頁面實(shí)例中不存在的附加節(jié)點(diǎn)72。
      [0072]共享D0M38定義諸節(jié)點(diǎn)、頁面數(shù)據(jù)和頁面實(shí)例之間的關(guān)系,該關(guān)系提供用以標(biāo)識(shí)和構(gòu)造不同的頁面實(shí)例的簡單且高效率的機(jī)制。例如,共享D0M38標(biāo)識(shí)各個(gè)頁面實(shí)例28、30和74的所有節(jié)點(diǎn)(包括共享節(jié)點(diǎn)62、64、66、68和70)及其彼此之間的相應(yīng)關(guān)系,以及為任何實(shí)例所獨(dú)有的任何節(jié)點(diǎn)(諸如節(jié)點(diǎn)72)。另外,共享D0M38包括與每個(gè)節(jié)點(diǎn)相對(duì)應(yīng)的靜態(tài)DOM部分122、124、126、128和130 (例如,共有部分)以及與每個(gè)節(jié)點(diǎn)相對(duì)應(yīng)的動(dòng)態(tài)DOM部分或動(dòng)態(tài)頁面數(shù)據(jù),諸如分別對(duì)應(yīng)于節(jié)點(diǎn)62的實(shí)例28、30和74的動(dòng)態(tài)數(shù)據(jù)82、92和102,分別對(duì)應(yīng)于節(jié)點(diǎn)64的實(shí)例28、30和74的動(dòng)態(tài)數(shù)據(jù)84、94和104,分別對(duì)應(yīng)于節(jié)點(diǎn)66的實(shí)例28,30和74的動(dòng)態(tài)數(shù)據(jù)86,96和106,分別對(duì)應(yīng)于節(jié)點(diǎn)68的實(shí)例28,30和74的動(dòng)態(tài)數(shù)據(jù)88,98和108,以及分別對(duì)應(yīng)于節(jié)點(diǎn)70的實(shí)例28,30和74的動(dòng)態(tài)數(shù)據(jù)90、100和110。另夕卜,共享DOM38包括各獨(dú)有節(jié)點(diǎn)的動(dòng)態(tài)DOM部分,諸如與節(jié)點(diǎn)72的第三頁面實(shí)例74相對(duì)應(yīng)的動(dòng)態(tài)數(shù)據(jù)112。
      [0073]參照?qǐng)D3,在一個(gè)方面,諸如移動(dòng)或蜂窩電話之類的計(jì)算機(jī)設(shè)備10可包括用于執(zhí)行與本文中所描述的一個(gè)或多個(gè)組件和功能相關(guān)聯(lián)的處理功能的處理器150。處理器150可包括單個(gè)或多個(gè)處理器或多核處理器集合。另外,處理器150可被實(shí)現(xiàn)為集成處理系統(tǒng)和/或分布式處理系統(tǒng)。
      [0074]計(jì)算機(jī)設(shè)備10可進(jìn)一步包括諸如用于存儲(chǔ)正由處理器150執(zhí)行的應(yīng)用的本地版本和/或用于對(duì)當(dāng)前并非正被處理器150執(zhí)行或利用的數(shù)據(jù)、指令和/或應(yīng)用的長期存儲(chǔ)的存儲(chǔ)器152。在一個(gè)方面,存儲(chǔ)器152可進(jìn)一步包括推導(dǎo)式高速緩存155。一旦接收到旨在被高速緩存的內(nèi)容,計(jì)算機(jī)設(shè)備10就可進(jìn)一步處理所接收到的內(nèi)容以生成推導(dǎo)出的內(nèi)容并且將推導(dǎo)式內(nèi)容157存儲(chǔ)在推導(dǎo)式高速緩存155中。在一個(gè)方面,此處理可通過預(yù)先準(zhǔn)備經(jīng)常使用的推導(dǎo)式內(nèi)容157來輔助高效率地促成對(duì)高速緩存著的內(nèi)容的后續(xù)使用。在另一方面,存儲(chǔ)器152可包括結(jié)構(gòu)化高速緩存159。結(jié)構(gòu)化高速緩存159可允許以如下方式來存儲(chǔ)內(nèi)容:可通過選取內(nèi)容的選定已知部分供檢索來選擇性地進(jìn)行檢索。在一個(gè)方面,結(jié)構(gòu)化高速緩存159是按如下方式來組織的:允許檢索存儲(chǔ)在結(jié)構(gòu)化高速緩存159中的內(nèi)容項(xiàng)的選定已知部分而不需要檢索整個(gè)內(nèi)容項(xiàng)。存儲(chǔ)器152可附加地存儲(chǔ)與估計(jì)和/或利用信道(例如,基于性能、基于容量等)相關(guān)聯(lián)的協(xié)議和/或算法。在一個(gè)方面,存儲(chǔ)器152可進(jìn)一步包括原始內(nèi)容存儲(chǔ)151。原始內(nèi)容存儲(chǔ)151可允許存儲(chǔ)接收到的原始內(nèi)容。
      [0075]應(yīng)當(dāng)領(lǐng)會(huì),本文中所描述的數(shù)據(jù)存儲(chǔ)(例如,存儲(chǔ)器152)可以是易失性存儲(chǔ)器或非易失性存儲(chǔ)器、或者可包括易失性和非易失性存儲(chǔ)器兩者。在一個(gè)方面,可使用雙存儲(chǔ)器模型,其中第一層是基于文件系統(tǒng)的非易失性存儲(chǔ)器并且第二層是堆結(jié)構(gòu)易失性存儲(chǔ)器。在此類方面,原始收到的內(nèi)容可存儲(chǔ)在第一層中并且推導(dǎo)式內(nèi)容可存儲(chǔ)在第二層中。另外,在此類方面,第二層可比第一層更快速地訪問。作為解說而非限定,非易失性存儲(chǔ)器可包括只讀存儲(chǔ)器(ROM)、可編程ROM (PR0M)、電可編程ROM (EPR0M)、電可擦除PROM (EEPR0M)、或閃存。易失性存儲(chǔ)器可包括充當(dāng)外部高速緩存存儲(chǔ)器的隨機(jī)存取存儲(chǔ)器(RAM)。藉由解說而非限定,RAM有許多形式可用,諸如同步RAM (SRAM)、動(dòng)態(tài)RAM (DRAM)、同步DRAM (SDRAM)、雙倍數(shù)據(jù)率SDRAM (DDR SDRAM)、增強(qiáng)型SDRAM (ESDRAM)、同步鏈路DRAM (SLDRAM)、以及直接存儲(chǔ)器總線(Rambus)RAM (DRRAM)0本主題系統(tǒng)和方法的存儲(chǔ)器152可包括但不限于這些以及任何其他合適類型的存儲(chǔ)器。
      [0076]另外,計(jì)算機(jī)設(shè)備10可包括通信組件154,該通信組件154利用本文中所描述的硬件、軟件和服務(wù)來提供對(duì)與一個(gè)或多個(gè)實(shí)體的通信的建立和維護(hù)。通信組件154可承載計(jì)算機(jī)設(shè)備10上的諸組件之間以及計(jì)算機(jī)10與外部設(shè)備(諸如位于通信網(wǎng)絡(luò)另一邊的設(shè)備和/或串聯(lián)或本地連接至計(jì)算機(jī)設(shè)備10的設(shè)備)之間的通信。例如,通信組件154可包括一條或多條總線,并且可進(jìn)一步包括可操作用于與外部設(shè)備交互的接口、一個(gè)或多個(gè)發(fā)射機(jī)或發(fā)射鏈組件以及一個(gè)或多個(gè)接收機(jī)或接收鏈組件。例如,此類發(fā)射機(jī)和接收機(jī)可根據(jù)一種或多種技術(shù)或協(xié)議來實(shí)現(xiàn)有線或無線通信。[0077]計(jì)算機(jī)設(shè)備10可附加地包括可操作用于從計(jì)算機(jī)設(shè)備10的用戶接收輸入158并且進(jìn)一步可操作用于生成供呈現(xiàn)給用戶的輸出160的用戶接口組件156。用戶接口組件156可包括一個(gè)或多個(gè)輸入設(shè)備,包括但不限于鍵盤、數(shù)字小鍵盤、鼠標(biāo)、觸敏顯示器、導(dǎo)航鍵、功能鍵、話筒、語音識(shí)別組件、能夠從用戶接收輸入的任何其他機(jī)構(gòu)、或其任何組合。另外,用戶接口組件156可包括一個(gè)或多個(gè)輸出設(shè)備,包括但不限于顯示器、揚(yáng)聲器、觸覺反饋機(jī)構(gòu)、打印機(jī)、能夠向用戶呈現(xiàn)輸出的任何其他機(jī)構(gòu)、或其任何組合。
      [0078]另外,如以上所提及的,計(jì)算機(jī)設(shè)備10可包括門戶組件12,該門戶組件12可以是web瀏覽器、窗口小部件或移動(dòng)窗口小部件、或web應(yīng)用中的一者或任何組合。門戶組件12可操作用于與計(jì)算機(jī)設(shè)備10的用戶以及與計(jì)算機(jī)設(shè)備10的其他組件接口以使得能夠渲染網(wǎng)頁。
      [0079]如以上所討論的,web引擎14管理對(duì)DOM匹配的確定以及對(duì)DOM的創(chuàng)建和存儲(chǔ)??扇芜x地,在一些方面,web引擎14可包括用于管理取回操作的定時(shí)和性能的取回管理器162。例如,取回管理器162可使得能夠預(yù)取具有剛從引用頁面點(diǎn)擊的鏈接的頁面的內(nèi)容,其中引用頁面包括URL以執(zhí)行預(yù)取。在一方面,例如,取回管理器162可在引用頁面的javascript中執(zhí)行預(yù)取發(fā)現(xiàn)調(diào)用。在另一方面,例如,取回管理器162可對(duì)頁面上要取回的URL加標(biāo)簽或者排序,因此在頁面渲染時(shí)可在接收對(duì)相應(yīng)頁面的請(qǐng)求之前處理這些標(biāo)簽或URL。例如,獲取管理器162可包括用于確定諸頁面之間的關(guān)系(例如,列表中毗鄰的頁面、階層中毗鄰的頁面等)的算法或功能以確定要預(yù)取何物和何時(shí)預(yù)取。在其他方面,所描述的裝置和方法可在當(dāng)前頁面的HTML頭中包括將由取回管理器162分析以供預(yù)取的已知URL的清單。在另一方面,所描述的裝置和方法可在引用頁面的HTML頭中包括每個(gè)可到達(dá)頁面的URL的結(jié)構(gòu)化清單,該結(jié)構(gòu)化清單將由取回管理器162分析以對(duì)每個(gè)可到達(dá)頁面執(zhí)行預(yù)取。在此方面的進(jìn)一步衍變中,所描述的裝置和方法可將本地的“下一頁面”清單從頁面元數(shù)據(jù)中分離出來,從而將該清單作為對(duì)GRS的getPageManifest O調(diào)用來插入。這將允許服務(wù)器調(diào)諧預(yù)取次序而不必更新頁面的xhtml頁面。這是另一個(gè)URL,所以expiry(過
      期)和ifmodified-since (自從......是否修改過)可控制對(duì)此“高速緩存元數(shù)據(jù)”資源的高
      速緩存。在另一方面,所描述的裝置和方法可包括用更寬泛的預(yù)取策略調(diào)用來檢索此元數(shù)據(jù)。此類策略更新可包括對(duì)整個(gè)模板集合的所有預(yù)取排序。預(yù)取排序可最初用自引導(dǎo)清單來鍵控和取回。
      [0080]可任選地,在一些方面,web引擎14可包括推導(dǎo)管理器164以在對(duì)相應(yīng)頁面實(shí)例的請(qǐng)求之前預(yù)推導(dǎo)DOM或DOM的諸部分。例如,渲染延遲中有很大部分與使web文檔被解析成DOM并且準(zhǔn)備好供渲染有關(guān)。推導(dǎo)管理器164包括提供在管理在網(wǎng)頁被需要的時(shí)間之前將網(wǎng)頁推導(dǎo)成DOM并高速緩存該DOM的操作中的層的算法或功能。推導(dǎo)管理器164使得此類推導(dǎo)能夠以智能方式進(jìn)行,即推導(dǎo)和高速緩存很有可能不是在經(jīng)由訓(xùn)令從清單首次下載時(shí)進(jìn)行,而是取而代之地可在web引擎14相對(duì)而言不太被使用并且相應(yīng)頁面正被需要的概率很高時(shí)進(jìn)行。例如,推導(dǎo)管理器164的算法或功能可確定諸頁面之間的關(guān)系(例如,列表中毗鄰的頁面、階層中毗鄰的頁面等)以確定要預(yù)推導(dǎo)何物以及何時(shí)預(yù)推導(dǎo)一個(gè)或多個(gè)頁面。
      [0081]應(yīng)當(dāng)注意,取回管理器162和推導(dǎo)管理器164可組合在相同的計(jì)算機(jī)設(shè)備10中以改善會(huì)話中頁面首次運(yùn)行的性能。[0082]計(jì)算機(jī)設(shè)備10可進(jìn)一步包括內(nèi)容處理機(jī)166以輔助在高速緩存之前對(duì)內(nèi)容進(jìn)行處理。在一個(gè)方面,內(nèi)容處理機(jī)166允許計(jì)算機(jī)設(shè)備102確定是否要從接收到的原始內(nèi)容151生成推導(dǎo)式內(nèi)容157。另外,內(nèi)容處理機(jī)166可從通信網(wǎng)絡(luò)接收處理指令168。在此類方面,通信網(wǎng)絡(luò)可提供處理指令168連同要在計(jì)算機(jī)設(shè)備102處存儲(chǔ)的內(nèi)容。在一個(gè)方面,處理指令168可諸如通過通信網(wǎng)絡(luò)來允許一些服務(wù)器側(cè)控制,該服務(wù)器側(cè)控制傳遞至計(jì)算機(jī)設(shè)備102以在計(jì)算機(jī)設(shè)備102處按與沒有處理指令168的情況相比更高效率的方式對(duì)原始內(nèi)容151執(zhí)行變換或類似操作。在一個(gè)方面,處理指令168可促成將推導(dǎo)式內(nèi)容157與接收到的原始內(nèi)容151相關(guān)聯(lián)以允許聞效率的后續(xù)檢索。例如,處理指令168可隨圖像一起傳送并且可提供用于重新映射圖像像素的指令。由此,與處理指令一起傳遞的內(nèi)容的大小可以很小。并且一旦由計(jì)算機(jī)設(shè)備102接收到大小很小的原始內(nèi)容和處理指令,處理指令168就可促成將該內(nèi)容擴(kuò)展開來成為更豐富的圖像或者更豐富的內(nèi)容集合。內(nèi)容處理機(jī)166可進(jìn)一步包括結(jié)構(gòu)參考169以輔助對(duì)收到內(nèi)容的處理。結(jié)構(gòu)參考169可處理收到內(nèi)容以促成在結(jié)構(gòu)化高速緩存159中的結(jié)構(gòu)化存儲(chǔ)。
      [0083]諸如javascript引擎之類的腳本化引擎50管理腳本功能的注冊(cè)和給定頁面實(shí)例的腳本的運(yùn)行。渲染引擎52生成或繪制給定頁面實(shí)例的全部或諸部分,并且將結(jié)果傳達(dá)至用戶接口 156的組件,諸如在顯示器15上呈現(xiàn)的所顯示的頁面實(shí)例13 (圖1)。
      [0084]現(xiàn)在轉(zhuǎn)到圖4,在操作中,在一個(gè)方面,用于渲染頁面的方法170包括在計(jì)算機(jī)設(shè)備處接收對(duì)所請(qǐng)求的頁面實(shí)例的請(qǐng)求(框172)。
      [0085]該方法進(jìn)一步包括確定所請(qǐng)求的頁面實(shí)例是否對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的關(guān)于該頁面的文檔對(duì)象模型(D0M)。存儲(chǔ)在存儲(chǔ)器中的DOM對(duì)應(yīng)于存儲(chǔ)著的頁面實(shí)例并且包括對(duì)于存儲(chǔ)著的頁面實(shí)例和所請(qǐng)求的頁面實(shí)例兩者而言相同的靜態(tài)部分(框174)。
      [0086]另外,該方法包括如果所請(qǐng)求的頁面實(shí)例對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的D0M,則引用該DOM的與所請(qǐng)求的實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分。該動(dòng)態(tài)部分是為所請(qǐng)求的頁面實(shí)例所獨(dú)有的(框176)。
      [0087]該方法還包括將該DOM的與所請(qǐng)求的頁面實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分與該DOM的靜態(tài)部分關(guān)聯(lián)地存儲(chǔ)(框178)??扇芜x地,該方法進(jìn)一步包括根據(jù)DOM的靜態(tài)部分和DOM的與所請(qǐng)求的頁面實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分來渲染所請(qǐng)求的頁面實(shí)例(框180)。
      [0088]參照?qǐng)D5和圖6,在一方面,用于渲染頁面的相應(yīng)第一實(shí)例和第二實(shí)例的方法包括諸如基于用戶輸入或門戶應(yīng)用的啟動(dòng)來請(qǐng)求第一頁面實(shí)例(202、204、302、304)。該方法進(jìn)一步包括web引擎確定該頁面實(shí)例是否對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器或高速緩存中的DOM (206、306)。在207處,如果該頁面實(shí)例對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器或高速緩存中的DOM (例如,預(yù)先推導(dǎo)出的D0M),則該方法繼續(xù)行至繪制過程(218)。然而,如果該頁面實(shí)例不對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器或高速緩存中的D0M,則分別向web服務(wù)器傳送相應(yīng)的GET并從web服務(wù)器接收相應(yīng)的響應(yīng)(208、210)。該響應(yīng)包括例如xhtml、css和javascript。
      [0089]在一些方面,在211處,可執(zhí)行對(duì)收到內(nèi)容的預(yù)處理,例如,推導(dǎo)收到內(nèi)容以生成推導(dǎo)式內(nèi)容。在一個(gè)方面,從web服務(wù)器獲得的原始內(nèi)容可伴隨有處理指令。一旦從web服務(wù)器接收到原始內(nèi)容,內(nèi)容處理機(jī)就可確定是否可在高速緩存接收到的原始內(nèi)容之前或者與高速緩存接收到的原始內(nèi)容同時(shí)地執(zhí)行附加處理。在一個(gè)方面,這些處理指令輔助至少確定是否要進(jìn)一步處理接收到的原始內(nèi)容。在另一方面,接收到的原始內(nèi)容可存儲(chǔ)在由與原始內(nèi)容相關(guān)聯(lián)的已知結(jié)構(gòu)決定(諸如可由結(jié)構(gòu)參考、服務(wù)器生成的入口點(diǎn)、或類似物來定義)的結(jié)構(gòu)化高速緩存中。一旦內(nèi)容處理機(jī)確定可處理接收到的原始內(nèi)容的至少一部分,則內(nèi)容處理機(jī)就處理接收到的原始內(nèi)容的選定部分以生成推導(dǎo)式內(nèi)容。推導(dǎo)式內(nèi)容可存儲(chǔ)在推導(dǎo)式高速緩存中。在一個(gè)方面,推導(dǎo)式內(nèi)容進(jìn)一步與接收到的原始內(nèi)容相關(guān)聯(lián)并且被相應(yīng)地存儲(chǔ)。例如,推導(dǎo)式內(nèi)容可包括經(jīng)編譯的javascript和/或經(jīng)編譯的css以供隨后在渲染相應(yīng)的第一和第二頁面實(shí)例時(shí)使用。如以下所討論的,圖7-9解說了用于預(yù)處理內(nèi)容的各種方法體系。
      [0090]隨后,在高速緩存中存儲(chǔ)響應(yīng)數(shù)據(jù)(212 ),并且創(chuàng)建和存儲(chǔ)靜態(tài)DOM部分(214 )。創(chuàng)建和存儲(chǔ)靜態(tài)DOM部分可包括從該響應(yīng)推導(dǎo)內(nèi)容并且該內(nèi)容變換成能夠被web弓丨擎處理的形式。例如,從該響應(yīng)推導(dǎo)內(nèi)容可包括解析該響應(yīng)(例如,xhtml代碼)以及從經(jīng)解析信息創(chuàng)建D0M。另外,規(guī)則可被構(gòu)造并被應(yīng)用于DOM以輔助靜態(tài)DOM的創(chuàng)建。這些規(guī)則可包括例如CSS規(guī)則以及其他類型的規(guī)則。應(yīng)當(dāng)領(lǐng)會(huì),靜態(tài)DOM可被存儲(chǔ)在存儲(chǔ)器或高速緩存中以供稍后使用。在一個(gè)方面,預(yù)處理靜態(tài)DOM的全部或一部分(211),并且因此靜態(tài)DOM部分可包括推導(dǎo)式內(nèi)容。替換地,對(duì)于第二實(shí)例,尋找和使用靜態(tài)DOM部分(316)。在這兩種情形中,均開始繪制過程以繪制和顯示一個(gè)或多個(gè)靜態(tài)DOM部分。更具體地,web引擎開始繪制過程(218、318)并且發(fā)起渲染引擎以繪制該靜態(tài)部分(220、320)。渲染引擎向顯示器轉(zhuǎn)發(fā)所繪制的靜態(tài)部分(222、322 )以顯示一個(gè)或多個(gè)靜態(tài)DOM部分(224、324)。注意,此繪制過程的定時(shí)可以變化。另外,推導(dǎo)出的css內(nèi)容(211)可被用于在繪制過程期間創(chuàng)建靜態(tài)結(jié)構(gòu)和文本(220、320)。
      [0091]另外,在獲得響應(yīng)和存儲(chǔ)著的靜態(tài)DOM部分之后,發(fā)起加載腳本操作(226、326),其中腳本引擎注冊(cè)腳本功能(228、328)、接收加載事件(230、330)、并且隨后運(yùn)行頁面腳本(232、332)。推導(dǎo)出的javascript (211)可在腳本化功能期間使用(228、232、328、332)。XHR發(fā)送事件(234、334)隨后被傳送給web引擎,該web引擎進(jìn)行檢查以查明數(shù)據(jù)是否已存儲(chǔ)在高速緩存中(236、336)。如果是,則在237和337處,存儲(chǔ)著的數(shù)據(jù)可被利用并被傳遞至腳本化引擎(244、344)。如果不是,則分別向數(shù)據(jù)服務(wù)器傳送數(shù)據(jù)取回和從數(shù)據(jù)服務(wù)器接收響應(yīng)(238和240、338和340)。這可以是XHR調(diào)用(238)和XHR結(jié)果(240)。在一些方面,在241和341處,可如以上在211中討論的那樣執(zhí)行對(duì)收到內(nèi)容的預(yù)處理。如以下所討論的,圖7-9解說了用于預(yù)處理內(nèi)容的各種方法體系。
      [0092]響應(yīng)數(shù)據(jù)存儲(chǔ)在高速緩存中(242、342),并且結(jié)果傳遞至腳本化引擎(244、344),該腳本引擎經(jīng)由DOM API應(yīng)用數(shù)據(jù)并且將該數(shù)據(jù)寫入web引擎中的高速緩存(246和248、346和348)。web引擎隨后為該數(shù)據(jù)的一個(gè)或多個(gè)動(dòng)態(tài)部分來為給定實(shí)例創(chuàng)建和存儲(chǔ)動(dòng)態(tài)DOM部分(250、350)。由于繪制操作可能是資源昂貴的,因而web引擎可緩沖此DOM部分(252、352)。隨后,web引擎發(fā)起與以上針對(duì)靜態(tài)部分的操作類似的繪制操作,這導(dǎo)致給定的頁面實(shí)例被創(chuàng)建。web引擎開始繪制過程(254、354)并且發(fā)起渲染引擎以繪制靜態(tài)部分(256、356)。渲染引擎將所繪制的靜態(tài)部分轉(zhuǎn)發(fā)給顯示器(258、358)以用于顯示一個(gè)或多個(gè)靜態(tài)DOM部分(260、360),從而導(dǎo)致給定的頁面實(shí)例被創(chuàng)建(262、362)。另外,注意,推導(dǎo)出的css內(nèi)容(241、341)可被用于在繪制過程期間創(chuàng)建靜態(tài)結(jié)構(gòu)和文本(256、356)。
      [0093]可任選地,在一些方面,圖5和圖6的方法可包括如以上參照取回管理器162 (圖3)所描述的一個(gè)或多個(gè)預(yù)取操作(264、364)。應(yīng)當(dāng)注意,預(yù)取操作的在圖5和圖6中的操作順序中的定時(shí)可以基于對(duì)何時(shí)想要此類預(yù)取的確定而相對(duì)于所解說的動(dòng)作發(fā)生變化。另夕卜,應(yīng)當(dāng)注意,預(yù)取操作可進(jìn)一步包括附加的GET和響應(yīng)、和/或XHR調(diào)用和結(jié)果、以及相應(yīng)的預(yù)先處理和后續(xù)處理,如以上所描述的。
      [0094]可任選地,在一些方面,圖5和圖6的方法可包括如以上參照推導(dǎo)管理器164 (圖3)所描述的一個(gè)或多個(gè)預(yù)推導(dǎo)操作(266、366)。應(yīng)當(dāng)注意,預(yù)推導(dǎo)操作的在圖5和圖6中的操作順序中的定時(shí)可以基于對(duì)何時(shí)想要此類預(yù)推導(dǎo)的確定而相對(duì)于所解說的動(dòng)作發(fā)生變化。另外,應(yīng)當(dāng)注意,預(yù)推導(dǎo)操作可進(jìn)一步包括附加的GET和響應(yīng)、和/或附加的XHR調(diào)用和結(jié)果、以及相應(yīng)的預(yù)先處理和后續(xù)處理,如以上所描述的。
      [0095]現(xiàn)在轉(zhuǎn)到圖7,解說了用于促成高效率的本地高速緩存的示例性方法1000。在附圖標(biāo)記1002處,接收原始數(shù)據(jù)。在一個(gè)方面,該數(shù)據(jù)可伴隨有處理指令。該數(shù)據(jù)可由計(jì)算機(jī)設(shè)備或類似物接收,并且該數(shù)據(jù)可發(fā)源自服務(wù)器、通信網(wǎng)絡(luò)等。例如,在一方面,原始數(shù)據(jù)可包括 css 和 javascript。
      [0096]在附圖標(biāo)記1004處,該方法包括確定收到數(shù)據(jù)是否是用于本地處理的候選。例如,收到數(shù)據(jù)可包括提示進(jìn)一步處理的處理指令。在另一方面,收到數(shù)據(jù)可以屬于提示進(jìn)一步處理的已知數(shù)據(jù)類型,諸如CSS或javascript。如果確定不需要進(jìn)一步的處理,則在附圖標(biāo)記1006處,收到數(shù)據(jù)可被高速緩存。附加地或可任選地,在一個(gè)方面,收到數(shù)據(jù)可被高速緩存,而不論該數(shù)據(jù)是否是用于進(jìn)一步處理的候選。相比之下,如果在附圖標(biāo)記1004處確定提示了進(jìn)一步處理,則在附圖標(biāo)記1008處,從收到內(nèi)容生成本地推導(dǎo)出的內(nèi)容。在一個(gè)方面,處理指令可引導(dǎo)內(nèi)容處理機(jī)生成推導(dǎo)式內(nèi)容。例如,收到圖像可被處理以生成在計(jì)算設(shè)備上常用的一個(gè)或多個(gè)大小。在另一示例中,接收到的程序文件可被處理以生成經(jīng)編譯程序以供計(jì)算設(shè)備隨后使用。在又一示例中,接收到的字體類型可被處理以生成各種常用的顏色和/或大小變型以供計(jì)算設(shè)備隨后使用。在附圖標(biāo)記1010處,至少將推導(dǎo)式內(nèi)容存儲(chǔ)在高速緩存中。在另一方面,推導(dǎo)式內(nèi)容和收到內(nèi)容被存儲(chǔ)并且相關(guān)聯(lián)以輔助后續(xù)的檢索。在一個(gè)方面,對(duì)原始數(shù)據(jù)和一個(gè)或多個(gè)推導(dǎo)出的內(nèi)容項(xiàng)的高速緩存可通過對(duì)推導(dǎo)式內(nèi)容項(xiàng)消除了檢索后的處理要求來改善感知到的應(yīng)用性能。在又一方面,處理指令隨推導(dǎo)式內(nèi)容和收到內(nèi)容一起被存儲(chǔ)并且被用于使推導(dǎo)出的內(nèi)容與收到內(nèi)容相關(guān)聯(lián)。
      [0097]現(xiàn)在轉(zhuǎn)到圖8,解說了根據(jù)一個(gè)方面的用于在高速緩存中進(jìn)行存儲(chǔ)之前通過處理指令來促成內(nèi)容修改的示例性方法1100。在一個(gè)方面,在附圖標(biāo)記1102處,計(jì)算設(shè)備可請(qǐng)求、取回要在高速緩存中存儲(chǔ)的內(nèi)容,或進(jìn)行類似操作。在此類方面,該請(qǐng)求可伴隨有協(xié)商指令。例如,該請(qǐng)求可針對(duì)圖像,其中伴隨的指令提供了優(yōu)選圖像的可能的像素范圍。一般地,在附圖標(biāo)記1104處,接收原始數(shù)據(jù)。此類數(shù)據(jù)可伴隨有處理指令。在一個(gè)方面,這些處理指令是至少部分地響應(yīng)于請(qǐng)求協(xié)商指令所生成的。數(shù)據(jù)可由計(jì)算機(jī)設(shè)備或類似物接收,并且數(shù)據(jù)可發(fā)源自服務(wù)器、通信網(wǎng)絡(luò)等。
      [0098]接下來要描述的是,在附圖標(biāo)記1106處,通過分析伴隨的處理指令來確定收到數(shù)據(jù)是否是用于本地處理的候選。如果處理指令不提示進(jìn)一步的處理,則在附圖標(biāo)記1108處,收到數(shù)據(jù)可被高速緩存。作為對(duì)比,如果在附圖標(biāo)記1106處,處理指令提示了附加處理,則在附圖標(biāo)記1112處,可向內(nèi)容處理機(jī)提供處理指令和收到內(nèi)容。在附圖標(biāo)記1112處,通過將處理指令用作指導(dǎo)來從原始內(nèi)容生成本地推導(dǎo)出的內(nèi)容(例如,推導(dǎo)式內(nèi)容)。由此,服務(wù)器或類似物可促成在傳輸之后對(duì)原始內(nèi)容的處理。例如,通過由處理指令提示內(nèi)容處理機(jī)要平滑收到圖像的漸變,收到圖像可被處理以生成具有較小粒度的圖像。
      [0099]在附圖標(biāo)記1114處,至少將推導(dǎo)式內(nèi)容存儲(chǔ)在高速緩存中。在另一方面,推導(dǎo)出的內(nèi)容和收到內(nèi)容被存儲(chǔ)并且相關(guān)聯(lián)以輔助后續(xù)的檢索。在又一方面,處理指令隨推導(dǎo)出的內(nèi)容和收到內(nèi)容一起被存儲(chǔ)并且被用于使推導(dǎo)出的內(nèi)容與收到內(nèi)容相關(guān)聯(lián)。
      [0100]現(xiàn)在轉(zhuǎn)到圖9,解說了用于促成在高速緩存中的結(jié)構(gòu)化存儲(chǔ)的示例性方法900。一般地,在附圖標(biāo)記902處,接收語義不透明的數(shù)據(jù)。在一個(gè)方面,該數(shù)據(jù)可伴隨有由服務(wù)器生成的進(jìn)入點(diǎn)以允許對(duì)選定部分的結(jié)構(gòu)化檢索。在另一方面,該數(shù)據(jù)可以屬于已知結(jié)構(gòu)。該數(shù)據(jù)可由計(jì)算機(jī)設(shè)備或類似物接收,并且數(shù)據(jù)可發(fā)源自服務(wù)器、內(nèi)容提供商等。
      [0101]接下來要描述的是,在附圖標(biāo)記904處,確定收到數(shù)據(jù)是否可以與已知結(jié)構(gòu)相關(guān)聯(lián)。例如,收到數(shù)據(jù)可包括由服務(wù)器生成的入口點(diǎn)或者可以屬于已知結(jié)構(gòu)。如果確定該數(shù)據(jù)不是以允許進(jìn)一步處理的方式被結(jié)構(gòu)化的,則在附圖標(biāo)記906處,收到數(shù)據(jù)可被高速緩存。作為對(duì)比,如果在附圖標(biāo)記904處確定提示了進(jìn)一步處理,則在附圖標(biāo)記908處,可確定數(shù)據(jù)結(jié)構(gòu)。例如,某些媒體類型可用允許處理的已知結(jié)構(gòu)來定義以促成選擇性的后續(xù)檢索。在附圖標(biāo)記910處,參照接收到的結(jié)構(gòu)化內(nèi)容的已知內(nèi)容來存儲(chǔ)該結(jié)構(gòu)化內(nèi)容。
      [0102]在一個(gè)方面,在附圖標(biāo)記912處,可接收對(duì)結(jié)構(gòu)化內(nèi)容的一部分的請(qǐng)求。在此類方面,在附圖標(biāo)記914處,可檢索結(jié)構(gòu)化內(nèi)容的被請(qǐng)求部分。例如,可從高速緩存中的結(jié)構(gòu)化內(nèi)容中選擇性地檢索與制造商或標(biāo)題或類似物相關(guān)聯(lián)的信息而不移除整個(gè)內(nèi)容項(xiàng)。
      [0103]圖10-13中解說了根據(jù)一方面的由移動(dòng)電話來執(zhí)行的移動(dòng)購物應(yīng)用的一個(gè)解說性示例?,F(xiàn)在轉(zhuǎn)到圖10,在一方面,主頁面500 (例如,第一頁面實(shí)例)可由用戶請(qǐng)求并且在移動(dòng)設(shè)備上顯示,如以上關(guān)于圖1-7所討論的。主頁面500可包括目錄列表504,該目錄列表504具有與目錄中的各個(gè)商品有關(guān)的信息。目錄列表504可包括目錄中的數(shù)據(jù)類別的列表(例如,506a-506n)、關(guān)于目錄中的商品的促銷信息、目錄中的商品的預(yù)覽和/或描述、或是要從目錄中購買的商品、以及其他信息。如果用戶想要查看不同的目錄列表,則用戶可例如通過選擇按鈕502來移至購物應(yīng)用中的不同目錄列表。替換地或補(bǔ)充地,用戶可以例如選擇目錄中的數(shù)據(jù)類別之一(例如,“本周新品”506c)并且移至所選類別的目錄頁面。圖11中解說了目錄頁面(例如,第二頁面實(shí)例)的示例。
      [0104]現(xiàn)在參照?qǐng)D11,在一方面,目錄頁面600可由用戶請(qǐng)求并且在移動(dòng)設(shè)備上顯示,例如,用戶從主頁面500(圖10)選擇目錄頁面600。當(dāng)目錄頁面600被請(qǐng)求時(shí),移動(dòng)設(shè)備可確定目錄頁面600是否具有與主頁面500和/或購物應(yīng)用中的其他頁面相對(duì)應(yīng)的相似結(jié)構(gòu)。一旦確定目錄頁面600具有與主頁面500相似的結(jié)構(gòu),移動(dòng)設(shè)備就可檢索并重用來自主頁面500的DOM的目錄頁面600的相似結(jié)構(gòu)。另外,移動(dòng)設(shè)備可確定目錄頁面600具有不同于主頁面500的結(jié)構(gòu)并且可為目錄頁面600所獨(dú)有的商品創(chuàng)建D0M。
      [0105]目錄頁面600可包括描述供購買的商品列表608a_608n和/或商品類別606的標(biāo)題604 (例如,本周新品)。類別可包括例如游戲、音樂、視頻、暢銷貨、特色商品、和/或推薦商品、以及其他類別。應(yīng)當(dāng)領(lǐng)會(huì),標(biāo)題604可對(duì)應(yīng)于用戶在主頁面500 (圖10)上的選擇。另外,供購買的商品608a-608n可包括:描述供購買的商品的名稱612a_612n ;商品的價(jià)格614a-614n ;解說和/或描述供購買的商品的圖標(biāo)610a_610n ;所顯示的商品評(píng)級(jí)616a-610n (例如,概述與供購買的商品的質(zhì)量和/或性能有關(guān)的數(shù)據(jù)的星形或文本);以及商品的供應(yīng)商;以及與供購買的商品有關(guān)的其他信息。應(yīng)當(dāng)領(lǐng)會(huì),供購買的商品可包括例如游戲、音樂、視頻或書籍、以及其他商品。
      [0106]例如,移動(dòng)設(shè)備可確定標(biāo)題604、供購買的商品列表608a_608n和/或商品類別606可具有與主頁面500中的特征相似的結(jié)構(gòu)(例如,標(biāo)題504、按鈕502和列表506a_506n)并且可檢索并重用來自主頁面500D0M的相似結(jié)構(gòu)。另外,移動(dòng)設(shè)備可確定標(biāo)題名稱604(例如,“本周新品”)、游戲名稱612a-612n、游戲圖標(biāo)608a_608n、游戲價(jià)格614a_614n、和/或游戲評(píng)級(jí)616a-616n為目錄頁面600所獨(dú)有,并且由此可為目錄頁面600所獨(dú)有的這些特征創(chuàng)建動(dòng)態(tài)D0M。
      [0107]因此,移動(dòng)設(shè)備為目錄頁面600中的為目錄頁面600所獨(dú)有的部分創(chuàng)建動(dòng)態(tài)DOM并且重用來自主頁面500的靜態(tài)DOM的相似結(jié)構(gòu)和/或?qū)嵗R虼?,由于移?dòng)設(shè)備不需要為目錄頁面600重構(gòu)整個(gè)DOM結(jié)構(gòu),因而允許更快速地渲染目錄頁面600。
      [0108]如果用戶想要查看不同的目錄頁面或者返回到主頁面500,則用戶可例如通過選擇按鈕602移至購物應(yīng)用中的不同目錄頁面。替換地或補(bǔ)充地,用戶可例如選擇目錄頁面600上列出的類別和/或商品之一(例如,游戲“游戲#5名稱”612e)并且移至商品頁面(例如,另一個(gè)(第二)頁面實(shí)例)。圖12和13中解說了商品頁面(例如,第二頁面實(shí)例)的示例。
      [0109]現(xiàn)在參照?qǐng)D12,在一方面,商品詳情頁面700可由用戶請(qǐng)求并且在移動(dòng)設(shè)備上顯示,例如,用戶從目錄頁面600 (圖11)選擇商品詳情頁面700。當(dāng)商品詳情頁面700被請(qǐng)求時(shí),移動(dòng)設(shè)備可確定商品詳情頁面700是否具有與目錄頁面600、主頁面500和/或購物應(yīng)用中的其他頁面相對(duì)應(yīng)的相似結(jié)構(gòu)和/或?qū)嵗H缫陨蠀⒄請(qǐng)D11所討論的,移動(dòng)設(shè)備可從主頁面500和/或目錄頁面600的DOM檢索并且重用目錄頁面600和/或主頁面500的相似結(jié)構(gòu)。另外,移動(dòng)設(shè)備可為商品詳情頁面700中的與目錄頁面600和/或主頁面500中的結(jié)構(gòu)或項(xiàng)目不匹配的部分創(chuàng)建D0M。
      [0110]例如,移動(dòng)設(shè)備可確定商品詳情頁面700上的按鈕702、游戲名稱706、圖標(biāo)704、價(jià)格710、游戲評(píng)級(jí)708可具有與目錄頁面600的特征相似的結(jié)構(gòu)并且可從目錄頁面600D0M檢索和重用相似的結(jié)構(gòu)。另外,移動(dòng)設(shè)備可為商品詳情頁面700中的與目錄頁面600和/或主頁面500中的結(jié)構(gòu)或項(xiàng)目不匹配的部分(例如,對(duì)此商品評(píng)級(jí)選項(xiàng)720、更多類似商品推薦716)創(chuàng)建D0M。因此,移動(dòng)設(shè)備為商品詳情頁面700中的為商品詳情頁面700所獨(dú)有的部分創(chuàng)建動(dòng)態(tài)DOM并且重用來自目錄頁面600和/或主頁面500的相似結(jié)構(gòu)和/或?qū)嵗?。因此,由于移?dòng)設(shè)備不需要為商品詳情頁面700重構(gòu)整個(gè)DOM結(jié)構(gòu),因而允許更快速地渲染商品詳情頁面700。
      [0111]如果用戶想要查看前一頁面,則用戶可選擇按鈕702以返回購物應(yīng)用中的前一頁面。替換地或補(bǔ)充地,用戶可選擇例如商品詳情頁面700上的另一商品(例如,游戲“吉他英雄111”718)并且移至另一商品詳情頁面(例如,圖13中解說的商品詳情頁面800)。
      [0112]現(xiàn)在轉(zhuǎn)到圖13,解說了根據(jù)一方面的商品詳情頁面800的另一示例。如以上參照?qǐng)D12所討論的,移動(dòng)設(shè)備可確定商品詳情頁面800是否具有與商品詳情頁面700、目錄頁面600、主頁面500和/或購物應(yīng)用中的其他頁面相對(duì)應(yīng)的相似結(jié)構(gòu)和/或?qū)嵗?。移?dòng)設(shè)備可從商品詳情頁面700、主頁面500和/或目錄頁面600的DOM檢索并且重用詳情頁面700、目錄頁面600和/或主頁面500的相似結(jié)構(gòu)。另外,移動(dòng)設(shè)備可為商品詳情頁面800中的與商品詳情頁面700、目錄頁面600和/或主頁面500中的結(jié)構(gòu)或項(xiàng)目不匹配的部分創(chuàng)建動(dòng)態(tài)D0M。例如,在此情形中,靜態(tài)DOM部分可包括商品詳情頁面700的相同布局,而動(dòng)態(tài)數(shù)據(jù)項(xiàng)(諸如游戲名稱806、游戲評(píng)級(jí)808、游戲價(jià)格810)則由動(dòng)態(tài)DOM部分來表示。
      [0113]參照?qǐng)D14,解說了渲染經(jīng)由內(nèi)容提供商從web服務(wù)器和數(shù)據(jù)服務(wù)器接收到的頁面(諸如網(wǎng)頁)的裝置400。在一些方面,例如,裝置400可駐留在移動(dòng)設(shè)備內(nèi)。如所描繪的,裝置400包括可表示由處理器、或軟件、或其組合(例如,固件)實(shí)現(xiàn)的功能的功能框。裝置400包括促成接收與頁面相對(duì)應(yīng)的web資源和數(shù)據(jù)并且渲染頁面實(shí)例的電組件的邏輯編組402。邏輯編組402可包括用于諸如在計(jì)算機(jī)設(shè)備處接收對(duì)所請(qǐng)求的頁面實(shí)例的請(qǐng)求的裝置404。另外,邏輯編組402可包括用于確定所請(qǐng)求的頁面實(shí)例是否對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的關(guān)于該頁面的文檔對(duì)象模型(DOM)的裝置406,其中存儲(chǔ)在存儲(chǔ)器中的DOM對(duì)應(yīng)于存儲(chǔ)著的頁面實(shí)例并且包括對(duì)于存儲(chǔ)著的頁面實(shí)例和所請(qǐng)求的頁面實(shí)例兩者而言相同的靜態(tài)部分。另外,邏輯編組402還可包括用于如果所請(qǐng)求的頁面實(shí)例對(duì)應(yīng)于存儲(chǔ)在存儲(chǔ)器中的DOM則檢索該DOM的與所請(qǐng)求的實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分的裝置408,其中該動(dòng)態(tài)部分為所請(qǐng)求的頁面實(shí)例所獨(dú)有。另外,邏輯編組402可包括用于將DOM的與所請(qǐng)求的頁面實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分與該DOM的靜態(tài)部分關(guān)聯(lián)地存儲(chǔ)的裝置410??扇芜x地,邏輯編組402可包括用于根據(jù)DOM的靜態(tài)部分和該DOM的與所請(qǐng)求的頁面實(shí)例相對(duì)應(yīng)的動(dòng)態(tài)部分來渲染所請(qǐng)求的頁面實(shí)例的裝置412。因此,裝置400可在渲染頁面時(shí)高效率地重用靜態(tài)部分,并且創(chuàng)建和存儲(chǔ)共享D0M,該共享DOM具有定義與相應(yīng)的一個(gè)或多個(gè)頁面實(shí)例相對(duì)應(yīng)的一個(gè)或多個(gè)動(dòng)態(tài)DOM部分的關(guān)系。
      [0114]另外,裝置400可包括存儲(chǔ)器414,其保存用于執(zhí)行與電組件404、406、408、410和(可任選地)412相關(guān)聯(lián)的功能的指令。雖然被示出為在存儲(chǔ)器414外部,但是應(yīng)當(dāng)理解,電組件404、406、408、410和(可任選地)412可以存在于存儲(chǔ)器414之內(nèi)。
      [0115]除了以上提及的高速緩存和處理技術(shù)之外,其他方面提供了用于通過除了重用HTML代碼之外還重用HTML計(jì)算來改善瀏覽器的性能的系統(tǒng)、方法和設(shè)備,其中HTML計(jì)算被鏈接或索引至相應(yīng)的DOM樹結(jié)構(gòu)。在加載網(wǎng)頁時(shí),瀏覽器通常執(zhí)行兩個(gè)高等級(jí)任務(wù):通過因特網(wǎng)取回HTML代碼(本文中稱“網(wǎng)絡(luò)元素”)以及執(zhí)行HTML計(jì)算以處理HTML代碼的內(nèi)容(本文中“計(jì)算元素”)。常規(guī)瀏覽器通過在本地存儲(chǔ)器中高速緩存接收自特定URL的HTML代碼由此節(jié)省下載HTML的時(shí)間并且改善網(wǎng)絡(luò)元素的方式,來改善網(wǎng)頁渲染過程。通過高速緩存HTML代碼,瀏覽器一接收到訪問相應(yīng)的HTML代碼被高速緩存著的統(tǒng)一資源定位符(URL)或統(tǒng)一資源標(biāo)識(shí)符(URI)的請(qǐng)求就可開始渲染頁面。因此,常規(guī)瀏覽器存儲(chǔ)HTML代碼,以使得這些瀏覽器一確定所請(qǐng)求的URL/URI與具有至存儲(chǔ)著的HTML代碼的鏈接的URL/URI組件相匹配就可開始渲染頁面,如同已在因特網(wǎng)上接收到該HTML那樣。然而,此類瀏覽器未能針對(duì)計(jì)算元素,從而每當(dāng)渲染相同頁面時(shí)都需要重新執(zhí)行計(jì)算。作為結(jié)果,常規(guī)瀏覽器僅將渲染時(shí)間改善到聯(lián)網(wǎng)元素是性能瓶頸的程度。
      [0116]如果數(shù)據(jù)傳輸速率慢于本地處理速度,則取回HTML代碼就是性能瓶頸。這通常發(fā)生在需要在具有有限帶寬的網(wǎng)絡(luò)上取回許多數(shù)據(jù)的時(shí)候。然而,近年來,網(wǎng)絡(luò)帶寬已大為改善。這因3.5G和4G移動(dòng)網(wǎng)絡(luò)變得越來越可用而得到證明,其提供超過14.4Mbps的帶寬。另外,一旦為URL高速緩存了 HTML代碼,常規(guī)瀏覽器就不能夠再更快速地渲染頁面,這對(duì)于用戶而言可能看起來似乎升級(jí)至較快速網(wǎng)絡(luò)幾乎不能改善網(wǎng)頁渲染時(shí)間。網(wǎng)頁正變得日益愈加復(fù)雜?,F(xiàn)代網(wǎng)頁需要大量計(jì)算以解析、格式化和渲染收到網(wǎng)頁的內(nèi)容。因此,渲染網(wǎng)頁的瓶頸已從網(wǎng)絡(luò)元素移至計(jì)算元素。[0117]各個(gè)方面提供了將HTML渲染計(jì)算高效率地映射和關(guān)聯(lián)至其DOM樹結(jié)構(gòu)的方式,以使得為一個(gè)頁面的一部分演算的計(jì)算可在渲染后續(xù)頁面的一個(gè)或多個(gè)部分時(shí)不是基于URL和/或URI而是基于結(jié)構(gòu)相似性來被高效率地重用。
      [0118]web瀏覽器通過處理HTML代碼以計(jì)算和定義進(jìn)入顯示的所有元素的方式生成供顯示的頁面。為計(jì)算網(wǎng)頁元素的樣式、格式和布局要求所需要的時(shí)間往往是大量的。例如,布局計(jì)算和樣式格式化的組合通常占本地網(wǎng)頁處理中的總計(jì)算時(shí)間的一半以上。另外,計(jì)算樣式屬性并且將其應(yīng)用于DOM元素的過程通常是每當(dāng)網(wǎng)頁被請(qǐng)求和/或渲染時(shí)都必須執(zhí)行的遞歸且耗時(shí)的過程。各個(gè)方面通過存儲(chǔ)為第一頁面演算的計(jì)算并且重用存儲(chǔ)著的計(jì)算以渲染具有相同或相似DOM樹結(jié)構(gòu)(S卩,同構(gòu))的第二頁面而無需第一和第二頁面的網(wǎng)頁URL之間有任何關(guān)聯(lián)性的方式來消除這些冗余且耗時(shí)的過程。
      [0119]以上參照?qǐng)D1和圖2所討論的方面存儲(chǔ)DOM樹,以使得洪享URL和/URI的)相同頁面的不同實(shí)例可共享相同DOM樹的各靜態(tài)部分。在那些方面,當(dāng)頁面的獨(dú)特實(shí)例(例如,“商品詳情”頁面)被請(qǐng)求時(shí),頁面數(shù)據(jù)(例如,超文本標(biāo)記語言(html)、級(jí)聯(lián)樣式表(css)和javascript (js))可被取回并被用于創(chuàng)建DOM樹的靜態(tài)部分。這些靜態(tài)部分可被存儲(chǔ)在高速緩存中,以使得它們可被重用。也就是說,當(dāng)存儲(chǔ)著的頁面的第二實(shí)例被請(qǐng)求時(shí),重用第一實(shí)例的靜態(tài)DOM部分并且專門為第二實(shí)例創(chuàng)建一個(gè)或多個(gè)動(dòng)態(tài)部分。作為結(jié)果,這些方面允許定義D0M,以使得DOM的諸部分可被重用于渲染相同頁面的不同實(shí)例。以下參照?qǐng)D15-20描述的方面將這些能力擴(kuò)展到使得即使在URL或URI不同的情況下也能夠重用HTML計(jì)算。
      [0120]在渲染網(wǎng)頁時(shí),瀏覽器首先解析HTML代碼(無論是經(jīng)由網(wǎng)絡(luò)接收的還是從存儲(chǔ)器調(diào)用的)以生成DOM樹。常規(guī)瀏覽器以及各個(gè)實(shí)施例的瀏覽器在該DOM樹不匹配存儲(chǔ)器中的任何DOM樹結(jié)構(gòu)時(shí)則處理該DOM樹以執(zhí)行為定義要被渲染的頁面的特征和特性所需要的計(jì)算。這些計(jì)算可包括例如為要在頁面上顯示的每個(gè)子元素計(jì)算尺寸和樣式。有許多對(duì)于任何給定的網(wǎng)頁而言可能都需要的眾所周知的計(jì)算。這些計(jì)算可包括計(jì)算布局、標(biāo)識(shí)樣式、執(zhí)行CSS匹配、以及需要處理器和/或處理密集的計(jì)算的其他操作。在各個(gè)方面,在存儲(chǔ)器中存儲(chǔ)這些計(jì)算連同DOM樹的相應(yīng)部分。隨后,每當(dāng)渲染頁面時(shí),在執(zhí)行計(jì)算之前將所生成的DOM樹與高速緩存著的DOM樹作比較以確定是否有任何匹配。如果在存儲(chǔ)器中標(biāo)識(shí)出匹配的DOM樹結(jié)構(gòu),則在存儲(chǔ)器中調(diào)用并且重用相應(yīng)的HTML計(jì)算結(jié)果,而且該頁面的DOM樹中僅與存儲(chǔ)著的樹不匹配的那些部分被處理以完成為渲染該頁面所需要的HTML計(jì)算。瀏覽器可使用眾所周知的樹同構(gòu)算法來標(biāo)識(shí)存儲(chǔ)著的DOM樹部分與所請(qǐng)求的頁面的DOM樹之間的結(jié)構(gòu)相似性。因此,此可重用性確定是獨(dú)立于URL和/或URI地作出的。
      [0121]以下描述的方面通過在存儲(chǔ)器中的DOM樹中存儲(chǔ)結(jié)果得到的計(jì)算并且基于DOM樹結(jié)構(gòu)進(jìn)行識(shí)別以標(biāo)識(shí)存儲(chǔ)著的計(jì)算的可被重用于渲染所訪問的網(wǎng)頁的諸部分,由此增加可供瀏覽器重用的HTML渲染計(jì)算的量的方式,來進(jìn)一步改善瀏覽器性能。為了達(dá)成此舉,除了高速緩存DOM樹的靜態(tài)部分和動(dòng)態(tài)部分之外,在存儲(chǔ)器中還存儲(chǔ)實(shí)際的計(jì)算。在各個(gè)方面,結(jié)果得到的計(jì)算可被高速緩存,以使得高速緩存著的計(jì)算被索引至其DOM樹(S卩,在完成這些計(jì)算時(shí)所執(zhí)行的DOM樹)。在一方面,結(jié)果以鍵-值(即,標(biāo)簽和值)對(duì)的形式存儲(chǔ)在存儲(chǔ)器中。鍵或標(biāo)簽標(biāo)識(shí)樹結(jié)構(gòu)元素,而值是該元素的HTML計(jì)算的結(jié)果。通過將計(jì)算索引至DOM樹,可在渲染具有結(jié)構(gòu)上相似的DOM樹部分的任何頁面時(shí)以獨(dú)立于與原始高速緩存著的頁面或者要被渲染的頁面相關(guān)聯(lián)的URL或URI的方式重用高速緩存著的計(jì)算。存儲(chǔ)索引至DOM樹的計(jì)算還允許快速地分析存儲(chǔ)著的DOM樹的結(jié)構(gòu)而無需任何特殊標(biāo)簽、關(guān)于URL和/或URI的信息、或者任何其他附加的標(biāo)識(shí)機(jī)制。
      [0122]各個(gè)方面使用各種眾所周知的樹同構(gòu)算法來識(shí)別和標(biāo)識(shí)正被渲染的頁面的DOM樹和存儲(chǔ)在存儲(chǔ)器中的DOM樹部分的同構(gòu)部分(S卩,共享相似的樹結(jié)構(gòu)的部分)以識(shí)別可被重用的高速緩存著的計(jì)算。例如,瀏覽器可使用諸如在“The Design and Analysisof Computer Algorithms (計(jì)算機(jī)算法的設(shè)計(jì)和分析)”,Addison-Wesley, 1974中描述的Alogtime、Aho> Hopcroft、Ullman和其他同構(gòu)算法之類的關(guān)于樹同構(gòu)的公知算法來標(biāo)識(shí)匹配的DOM樹部分,該文獻(xiàn)的全部內(nèi)容納入于此。
      [0123]當(dāng)瀏覽器識(shí)別出當(dāng)前DOM樹的諸部分與存儲(chǔ)著的DOM樹或者存儲(chǔ)著的DOM樹部分的諸部分相匹配時(shí),與標(biāo)識(shí)出的部分相對(duì)應(yīng)的高速緩存著的計(jì)算結(jié)果可被快速地且高效率地從存儲(chǔ)器調(diào)用。這可通過以鍵值和輸入值的形式來存儲(chǔ)計(jì)算結(jié)果的方式達(dá)成。在這些方面,可將用于創(chuàng)建高速緩存著的計(jì)算結(jié)果的鍵值和輸入值與正被渲染的當(dāng)前頁面的鍵值和輸入值作比較以確定這些值是否相同,以使得存儲(chǔ)著的計(jì)算結(jié)果的一個(gè)或多個(gè)部分可被重用。如果確定了存儲(chǔ)著的計(jì)算的一個(gè)或多個(gè)部分是可重用的,則從存儲(chǔ)器調(diào)用存儲(chǔ)著的計(jì)算值并且由瀏覽器使用這些計(jì)算值。當(dāng)頁面的所有可重用的HTML計(jì)算已從存儲(chǔ)器調(diào)用并且所有其他計(jì)算已由瀏覽器執(zhí)行時(shí),所檢索的和所執(zhí)行的計(jì)算結(jié)果可被用于顯示該頁面。將此能力與常規(guī)的HTML高速緩存能力相組合使得瀏覽器能夠非??焖俚仫@示頁面而無需下載或計(jì)算新請(qǐng)求的HTML頁面。
      [0124]圖15解說通過瀏覽器解析所請(qǐng)求的網(wǎng)頁的HTML代碼所生成的DOM樹1500的樣本部分。如圖15中所解說的,在解析HTML代碼時(shí),瀏覽器可為每個(gè)標(biāo)頭創(chuàng)建DOM元素和/或節(jié)點(diǎn)。在所解說的示例中,HTML代碼包含報(bào)頭部分(例如,〈HEAD〉...〈/HEAD〉)和主體部分(例如,〈BODY〉...〈/BODY〉)。主體部分包含至少一個(gè)Div (章節(jié))部分和至少一個(gè)Span(跨度)部分,如由DOM樹1500中的Div (章節(jié))和Span (跨度)節(jié)點(diǎn)所解說的。Div和Span節(jié)點(diǎn)中的每一者還可包含子部分,如由Div部分的Paragrpah (段落)部分所解說的。在完成用于渲染頁面的計(jì)算的過程中,DOM樹元素(例如,Body、Div、Paragraph等)可被遍歷以計(jì)算各個(gè)頁面組件的屬性和特性。例如,對(duì)于計(jì)算所請(qǐng)求的頁面的布局,DOM樹可被遍歷以提取每個(gè)元素的高度、寬度和位置的絕對(duì)值(例如,h=50、w=50、x=500、y=10 ),這些絕對(duì)值通常取決于運(yùn)行時(shí)和環(huán)境因素(例如,窗口大小)并且不能提前確定。在各個(gè)方面,這些計(jì)算出的位置值可隨后存儲(chǔ)在鏈接至DOM樹的存儲(chǔ)器中以供在渲染包括相同或相似計(jì)算的未來頁面時(shí)重用。
      [0125]圖16解說了可為DOM樹1500中的每個(gè)元素存儲(chǔ)計(jì)算出的值。在所解說的示例中,表示每個(gè)元素的高度、寬度、水平位置(X)和垂直位置(Y)的絕對(duì)位置值可作為散列表、散列映射、鏈接表、二進(jìn)制表、相關(guān)聯(lián)的數(shù)組被存儲(chǔ)在存儲(chǔ)器1610中。在各個(gè)方面,該信息可作為散列表和/或散列映射被存儲(chǔ)在存儲(chǔ)器1610中,以使得存儲(chǔ)著的信息的鍵-值對(duì)映射至DOM樹中的相應(yīng)節(jié)點(diǎn)。例如,鍵-值對(duì)可被存儲(chǔ),以使得鍵元素標(biāo)識(shí)DOM樹元素并且(例如,經(jīng)由散列映射的散列函數(shù))定位相應(yīng)的值元素(例如,該DOM元素的絕對(duì)位置值)。在各個(gè)方面,散列表和/或散列映射的維度可被良好地設(shè)計(jì),以使得為標(biāo)識(shí)出值(例如,絕對(duì)值)所需要的指令的數(shù)目獨(dú)立于DOM樹中的元素的數(shù)目。在各個(gè)方面,散列表和/或散列映射可被用于在單個(gè)統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)這些DOM樹及其相關(guān)聯(lián)的屬性。本領(lǐng)域中已知的其他數(shù)據(jù)結(jié)構(gòu)或者數(shù)據(jù)結(jié)構(gòu)的組合也可被使用。
      [0126]圖17解說了用于在瀏覽器的首次執(zhí)行時(shí)和/或具有未標(biāo)識(shí)出的DOM結(jié)構(gòu)的特定網(wǎng)頁的首次渲染時(shí)創(chuàng)建、處理和存儲(chǔ)DOM樹的方法1700的一方面。在方法1700中,在框1702中,瀏覽器可從與期望網(wǎng)頁相對(duì)應(yīng)的遠(yuǎn)程或本地服務(wù)器接收HTML代碼。在框1704中,瀏覽器可解析接收到的HTML并且創(chuàng)建DOM樹。在框1706中,瀏覽器可處理DOM樹以完成所有必要的計(jì)算。在框1708中,瀏覽器可在存儲(chǔ)器中高速緩存計(jì)算結(jié)果,并且在框1710中構(gòu)成DOM樹和/或經(jīng)處理的HTML代碼以供輸出給顯示器。在框1712中,瀏覽器可在其上運(yùn)行該瀏覽器的計(jì)算設(shè)備的電子顯示器上顯示所構(gòu)成且經(jīng)處理的HTML代碼連同所有關(guān)聯(lián)的圖像和文件。
      [0127]圖18解說了用于在瀏覽器的后續(xù)執(zhí)行時(shí)創(chuàng)建、處理、存儲(chǔ)、和/或檢索DOM樹的諸部分的方法1800的一方面。在方法1800中,在框1802中,瀏覽器可從服務(wù)器接收HTML代碼和/或從高速緩存存儲(chǔ)器調(diào)用HTML代碼。在框1804中,瀏覽器可解析HTML代碼并且為接收到的HTML代碼創(chuàng)建DOM樹的至少一部分。在確定框1806中,瀏覽器可通過確定DOM樹結(jié)構(gòu)是否同構(gòu)來確定DOM樹的所生成部分是否與存儲(chǔ)在存儲(chǔ)器中的一個(gè)或多個(gè)DOM樹的任何部分相匹配。在各個(gè)方面,瀏覽器可通過評(píng)估一個(gè)或多個(gè)存儲(chǔ)著的DOM樹的索引來作出此確定。在各個(gè)方面,瀏覽器可對(duì)照存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分的散列鍵來檢查與DOM樹的所生成部分相關(guān)聯(lián)的散列鍵。在各個(gè)方面,瀏覽器可執(zhí)行一個(gè)或多個(gè)同構(gòu)算法或發(fā)起對(duì)一個(gè)或多個(gè)同構(gòu)算法的執(zhí)行以確定所生成的DOM樹的諸部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的任何部分相匹配。確定框1806中同構(gòu)算法的執(zhí)行可確定所生成的DOM樹的諸部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的諸部分在結(jié)構(gòu)上相同和/或在結(jié)構(gòu)上相似。
      [0128]返回圖18,如果確定DOM樹的所生成部分不與存儲(chǔ)在存儲(chǔ)器中的任何DOM樹的結(jié)構(gòu)相匹配(即,確定框1806=“否”),則在框1808中,瀏覽器可處理DOM樹的所生成部分并且執(zhí)行相關(guān)聯(lián)的計(jì)算(例如,計(jì)算元素的絕對(duì)位置、樣式、執(zhí)行CSS匹配等)。在框1810中,瀏覽器可高速緩存計(jì)算結(jié)果,其中這些結(jié)果被索引至DOM樹的所執(zhí)行部分。
      [0129]另一方面,如果確定了 DOM樹的所生成部分與存儲(chǔ)在存儲(chǔ)器中的DOM樹的任何部分在結(jié)構(gòu)上相同和/或在結(jié)構(gòu)上相似(即,確定框1806= “是”),則在框1812中,瀏覽器可從存儲(chǔ)器調(diào)用與匹配的DOM索引相對(duì)應(yīng)的高速緩存著的計(jì)算結(jié)果。在確定框1814中,瀏覽器可確定存儲(chǔ)在存儲(chǔ)器中的匹配部分的鍵和/或輸入數(shù)據(jù)是否與所生成部分的鍵和/或輸入數(shù)據(jù)相同,從而指示存儲(chǔ)著的計(jì)算可在生成所請(qǐng)求的HTML頁面時(shí)是可重用的。如果存儲(chǔ)在存儲(chǔ)器中的匹配部分的鍵和/或輸入數(shù)據(jù)與所生成部分的鍵和/或輸入數(shù)據(jù)并不相同(即,確定框1814=“否”),則在框1818中,瀏覽器可處理所生成的DOM樹并且執(zhí)行計(jì)算。如果鍵和/或輸入數(shù)據(jù)匹配(即,確定框1814= “是”),則在確定框1816中,瀏覽器可確定是否所有必要的計(jì)算都已被計(jì)算或者從存儲(chǔ)器調(diào)用。如果不是所有計(jì)算均完成了(即,確定框1816= “否”),則瀏覽器可通過返回框1804來解析HTML代碼的另一部分以生成DOM樹的附加部分。如果所有計(jì)算均已完成(即,確定框1816= “是”),則瀏覽器可在框1818中驗(yàn)證數(shù)據(jù)并且構(gòu)成供渲染的頁面,以及在框1820中在計(jì)算設(shè)備的電子顯示器上顯示該頁面。
      [0130]圖19解說了用于在瀏覽器的后續(xù)執(zhí)行之際創(chuàng)建、處理、存儲(chǔ)、和/或檢索DOM樹的諸部分的方法1900的替換方面。在方法1900中,在框1902中,瀏覽器可從高速緩存存儲(chǔ)器和/或遠(yuǎn)程服務(wù)器接收HTML代碼。在框1904中,瀏覽器可解析接收到的HTML并且基于接收到的HTML來生成DOM樹的一個(gè)或多個(gè)部分。在框1908中,瀏覽器可通過執(zhí)行實(shí)現(xiàn)同構(gòu)算法以確定所生成的DOM樹的諸部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的任何部分相匹配(例如,在結(jié)構(gòu)上與存儲(chǔ)在存儲(chǔ)器中的DOM樹的任何部分相似)的線程/進(jìn)程來處理所生成的DOM樹部分并且將其與存儲(chǔ)在存儲(chǔ)器中的DOM樹作比較。如果在高速緩存存儲(chǔ)器中沒有找到結(jié)構(gòu)上相似和/或相同的DOM樹部分(例如,同構(gòu)部分),則瀏覽器可使用諸如以上所描述的示例結(jié)構(gòu)之一之類的數(shù)據(jù)結(jié)構(gòu)在存儲(chǔ)器中存儲(chǔ)被索引至DOM樹的計(jì)算。如果在存儲(chǔ)器中找到結(jié)構(gòu)上相似和/或相同的DOM樹部分(例如,同構(gòu)部分),則在確定框1910中,瀏覽器可從高速緩存存儲(chǔ)器提取和/或檢索這些同構(gòu)部分并且確定鍵和/或數(shù)據(jù)輸入值是否匹配。在各個(gè)方面,DOM樹可被存儲(chǔ)在散列表和/或散列映射中,以使得無論何時(shí)只要所比較的DOM樹的一個(gè)或多個(gè)部分被確定為同構(gòu),則鍵和/或輸入數(shù)據(jù)就將匹配。在這些方面,可將框1908可與確定框1910和框1912組合,如由框1920所解說的。
      [0131]如果確定DOM樹的所生成部分的鍵和/或數(shù)據(jù)輸入值不與存儲(chǔ)在高速緩存存儲(chǔ)器中的DOM樹的各部分的任何鍵和/或數(shù)據(jù)輸入值相匹配(S卩,確定步驟1910=“否”),則瀏覽器可通過遍歷該DOM樹并且執(zhí)行如以上參照?qǐng)D17在方法1700中所描述的相關(guān)聯(lián)的計(jì)算來創(chuàng)建、處理和/或存儲(chǔ)所生成部分。另一方面,如果一個(gè)或多個(gè)DOM樹部分被確定具有匹配的鍵和/或輸入值(即,確定步驟1910=“是”),則在框1912中,瀏覽器可從存儲(chǔ)器拉取與匹配的鍵和/或輸入值相關(guān)聯(lián)的值。在確定框1914中,可使用一個(gè)或多個(gè)已知的數(shù)據(jù)和/或HTML驗(yàn)證方案來驗(yàn)證所拉取的值(例如,從存儲(chǔ)器檢索到的存儲(chǔ)著的計(jì)算)。如果一個(gè)或多個(gè)驗(yàn)證方案失敗(即,確定框1914=“否”),則瀏覽器可通過遍歷DOM樹并且執(zhí)行如以上參照?qǐng)D17在方法1700中所描述的相關(guān)聯(lián)的計(jì)算來創(chuàng)建、處理和存儲(chǔ)HTML計(jì)算的所生成部分。如果數(shù)據(jù)被確定為是有效的(即,確定框1914= “是”),則瀏覽器可在框1916中構(gòu)成網(wǎng)頁并且在框1918中在電子顯示器上顯示結(jié)果得到的HTML網(wǎng)頁。
      [0132]圖20是適于與任何方面聯(lián)用的移動(dòng)計(jì)算設(shè)備的系統(tǒng)框圖。典型的移動(dòng)計(jì)算設(shè)備2000可包括耦合到內(nèi)部存儲(chǔ)器2002、顯示器2003并耦合到揚(yáng)聲器2054的處理器2001。另夕卜,移動(dòng)計(jì)算設(shè)備2000可包括可連接到無線數(shù)據(jù)鏈路的用于發(fā)送和接收電磁輻射的天線2004、和/或耦合到處理器2001的蜂窩電話收發(fā)機(jī)2005、以及耦合到處理器2001的移動(dòng)計(jì)算設(shè)備2024。移動(dòng)計(jì)算設(shè)備2000通常還包括用于接收用戶輸入的菜單選擇按鈕或搖桿開關(guān) 2008。
      [0133]以上所描述的各個(gè)方面還可在諸如圖21中所解說的膝上型計(jì)算機(jī)2100之類的各種計(jì)算設(shè)備內(nèi)實(shí)現(xiàn)。許多膝上型計(jì)算機(jī)包括充當(dāng)計(jì)算機(jī)的點(diǎn)示設(shè)備的觸摸板觸摸表面,并且由此可接收與在裝備有觸摸屏顯示器的移動(dòng)計(jì)算設(shè)備上實(shí)現(xiàn)的拖曳、滾動(dòng)和輕拂手勢(shì)類似的拖曳、滾動(dòng)和輕拂手勢(shì)。膝上型計(jì)算機(jī)2100將通常包括耦合至易失性存儲(chǔ)器2102和諸如盤驅(qū)動(dòng)器2103之類的大容量非易失性存儲(chǔ)器的處理器2101。計(jì)算機(jī)2100還可包括耦合至處理器2101的軟盤驅(qū)動(dòng)器2104和壓縮盤(⑶)驅(qū)動(dòng)器2105。計(jì)算機(jī)設(shè)備2100還可包
      括耦合至處理器2101的用于建立數(shù)據(jù)連接或接收外部存儲(chǔ)器設(shè)備的諸如USB或FireWireli連接器插口之類的數(shù)個(gè)連接器端口,或者用于將處理器2101耦合至網(wǎng)絡(luò)的其它網(wǎng)絡(luò)連接電路2106。在筆記本配置中,計(jì)算機(jī)外殼包括均耦合至處理器2101的觸摸板2107、鍵盤2108、和顯示器2109。計(jì)算設(shè)備的其它配置可包括眾所周知的(例如,經(jīng)由USB輸入)耦合至處理器的計(jì)算機(jī)鼠標(biāo)或軌跡球。
      [0134]處理器2001、2101可以是能通過軟件指令(應(yīng)用)配置成執(zhí)行包括以下描述的各種實(shí)施例的功能在內(nèi)的各種功能的任何可編程微處理器、微型計(jì)算機(jī)或一個(gè)或多個(gè)多處理器芯片。在一些移動(dòng)接收機(jī)設(shè)備中,可提供多個(gè)處理器2101,諸如一個(gè)處理器專用于無線通信功能并且一個(gè)處理器專用于運(yùn)行其他應(yīng)用。通常,在軟件應(yīng)用被訪問并被加載到處理器2001,2101中之前,這些軟件應(yīng)用可被存儲(chǔ)在內(nèi)部存儲(chǔ)器2002、2102、2103中。處理器2001、2101可包括足以存儲(chǔ)應(yīng)用軟件指令的內(nèi)部存儲(chǔ)器。
      [0135]結(jié)合本文所公開的實(shí)施例描述的各種說明性邏輯、邏輯塊、模塊、和電路可用通用處理器、數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯器件、分立的門或晶體管邏輯、分立的硬件組件、或其設(shè)計(jì)成執(zhí)行本文所描述功能的任何組合來實(shí)現(xiàn)或執(zhí)行。通用處理器可以是微處理器,但在替換方案中,處理器可以是任何常規(guī)的處理器、控制器、微控制器、或狀態(tài)機(jī)。處理器還可以被實(shí)現(xiàn)為計(jì)算設(shè)備的組合,例如DSP與微處理器的組合、多個(gè)微處理器、與DSP核心協(xié)作的一個(gè)或多個(gè)微處理器、或任何其他此類配置。此外,至少一個(gè)處理器可包括可作用于執(zhí)行以上描述的一個(gè)或多個(gè)步驟和/或動(dòng)作的一個(gè)或多個(gè)模塊。
      [0136]此外,結(jié)合本文中所公開的方面描述的方法或算法的步驟和/或動(dòng)作可直接在硬件中、在由處理器執(zhí)行的軟件模塊中、或在這兩者的組合中實(shí)施。軟件模塊可駐留在RAM存儲(chǔ)器、閃存、ROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤、可移動(dòng)盤、CD-ROM、或本領(lǐng)域中所知的任何其他形式的存儲(chǔ)介質(zhì)中。示例性存儲(chǔ)介質(zhì)可被耦合到處理器以使得該處理器能從/向該存儲(chǔ)介質(zhì)讀寫信息。在替換方案中,存儲(chǔ)介質(zhì)可以被整合到處理器。另夕卜,在一些方面,處理器和存儲(chǔ)介質(zhì)可駐留在ASIC中。另外,ASIC可駐留在用戶終端中。在替換方案中,處理器和存儲(chǔ)介質(zhì)可作為分立組件駐留在用戶終端中。另外,在一些方面,方法或算法的步驟和/或動(dòng)作可作為代碼和/或指令之一或其任何組合或集合駐留在可被納入到計(jì)算機(jī)程序產(chǎn)品中的機(jī)器可讀介質(zhì)和/或計(jì)算機(jī)可讀介質(zhì)上。
      [0137]在一個(gè)或更多個(gè)方面中,所描述的功能可在硬件、軟件、固件或其任何組合中實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn),則這些功能可作為一條或多條指令或代碼存儲(chǔ)或傳送在非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)上。非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)包括任何形式的、促成計(jì)算機(jī)程序從一個(gè)地方轉(zhuǎn)移至另一個(gè)地方的計(jì)算機(jī)存儲(chǔ)介質(zhì)。非瞬態(tài)存儲(chǔ)介質(zhì)可以是能被計(jì)算機(jī)訪問的任何可用介質(zhì)。作為示例而非限定,此類非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)可以包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲(chǔ)、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或者可用以攜帶或者存儲(chǔ)指令或數(shù)據(jù)結(jié)構(gòu)形式的期望程序代碼且可由計(jì)算機(jī)訪問的任何其它介質(zhì)。如本文中所使用的盤和碟包括壓縮碟(⑶)、激光碟、光碟、數(shù)字多用碟(DVD)、軟盤和藍(lán)光碟,其中盤(disk)往往以磁的方式再現(xiàn)數(shù)據(jù),而碟(disc)往往用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。以上的組合也應(yīng)被包括在非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
      [0138]盡管前面的公開討論了解說性的方面和/或?qū)嵤├?,但是?yīng)當(dāng)注意,在其中可作出各種變更和改動(dòng)而不會(huì)脫離所描述的這些方面和/或?qū)嵤├娜缬伤綑?quán)利要求定義的范圍。此外,盡管所描述的方面和/或?qū)嵤├囊乜赡苁且詥螖?shù)來描述或主張權(quán)利的,但是復(fù)數(shù)也是已構(gòu)想了的,除非顯式地聲明了限定于單數(shù)。另外,任何方面和/或?qū)嵤├娜炕虿糠挚膳c任何其他方面和/或?qū)嵤├娜炕虿糠致?lián)用,除非另外聲明。
      【權(quán)利要求】
      1.一種用于在計(jì)算設(shè)備上渲染頁面的方法,包括: 在所述計(jì)算設(shè)備的處理器中接收顯示網(wǎng)頁的請(qǐng)求; 確定與所述網(wǎng)頁相關(guān)聯(lián)的文檔對(duì)象模型(DOM)樹的一部分是否存儲(chǔ)在高速緩存存儲(chǔ)器中; 從所述高速緩存存儲(chǔ)器檢索存儲(chǔ)著的DOM樹的可重用部分; 使用所述存儲(chǔ)著的DOM樹的所檢索部分和所述DOM樹的經(jīng)動(dòng)態(tài)處理的部分來構(gòu)成所請(qǐng)求的網(wǎng)頁;以及 在所述計(jì)算設(shè)備的電子顯示器上顯示所請(qǐng)求的網(wǎng)頁。
      2.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括: 接收與所請(qǐng)求的網(wǎng)頁相對(duì)應(yīng)的HTML代碼;以及 解析所接收到的HTML代碼以生成DOM樹, 其中確定與所述網(wǎng)頁相關(guān)聯(lián)的DOM樹的一部分是否存儲(chǔ)在高速緩存存儲(chǔ)器中包括確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu),并且 其中從所述高速緩存存儲(chǔ)器檢索所述存儲(chǔ)著的DOM樹的可重用部分包括在確定了所生成的DOM樹的一部分與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)時(shí)從存儲(chǔ)器檢索先前存儲(chǔ)的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算。
      3.如權(quán)利要求2所述的方法,其`特征在于,確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)包括通過使用樹同構(gòu)比較算法來將所生成的DOM樹與存儲(chǔ)在存儲(chǔ)器中的DOM樹結(jié)構(gòu)作比較。
      4.如權(quán)利要求2所述的方法,其特征在于,確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)包括確定所生成的DOM樹的所述部分是否具有與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分相同的結(jié)構(gòu)。
      5.如權(quán)利要求2所述的方法,其特征在于,確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)包括確定所生成的DOM樹的所述部分是否與存儲(chǔ)在所述存儲(chǔ)器中的所述DOM樹的一個(gè)或多個(gè)部分在結(jié)構(gòu)上相似。
      6.如權(quán)利要求2所述的方法,其特征在于,進(jìn)一步包括確定用于創(chuàng)建存儲(chǔ)器中的DOM樹的計(jì)算結(jié)果的鍵值和輸入值是否等于所生成的DOM樹的鍵值和輸入值, 其中從存儲(chǔ)器檢索先前存儲(chǔ)的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算是僅在確定了用于創(chuàng)建存儲(chǔ)器中的DOM樹的計(jì)算結(jié)果的鍵值和輸入值等于所生成的DOM樹的鍵值和輸入值時(shí)才被執(zhí)行。
      7.如權(quán)利要求2所述的方法,其特征在于,從存儲(chǔ)器檢索先前存儲(chǔ)的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算包括訪問存儲(chǔ)所述DOM樹的所述部分的計(jì)算結(jié)果的所述高速緩存存儲(chǔ)器,以使得所述計(jì)算結(jié)果基于與所述DOM樹的諸部分相對(duì)應(yīng)的DOM子樹結(jié)構(gòu)按照計(jì)算出的散列值來索引。
      8.如權(quán)利要求2所述的方法,其特征在于,進(jìn)一步包括: 在確定所生成的DOM樹與存儲(chǔ)在存儲(chǔ)器中的所述DOM樹的所述一個(gè)或多個(gè)部分中的任何部分都不同構(gòu)時(shí)完成關(guān)于所生成的DOM樹的HTML代碼計(jì)算;以及 在存儲(chǔ)器中存儲(chǔ)用所生成的DOM樹來索引的所述HTML計(jì)算的結(jié)果。
      9.如權(quán)利要求8所述的方法,其特征在于,存儲(chǔ)所生成的DOM樹包括在鍵-值數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所生成的DOM樹的至少一部分,其中DOM樹元素與相應(yīng)的HTML計(jì)算結(jié)果相關(guān)聯(lián)地存儲(chǔ)在所述鍵-值數(shù)據(jù)結(jié)構(gòu)中。
      10.如權(quán)利要求9所述的方法,其特征在于,結(jié)構(gòu)化高速緩存是使用散列映射數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)的。
      11.如權(quán)利要求9所述的方法,其特征在于,所述鍵-值數(shù)據(jù)結(jié)構(gòu)包括散列映射數(shù)據(jù)結(jié)構(gòu)。
      12.如權(quán)利要求11所述的方法,其特征在于,從所述存儲(chǔ)器檢索先前存儲(chǔ)的計(jì)算包括評(píng)估與所述存儲(chǔ)著的DOM樹中的和所生成的DOM樹的所述部分同構(gòu)的節(jié)點(diǎn)相關(guān)聯(lián)的散列鍵。
      13.一種計(jì)算設(shè)備,包括: 用于接收顯示網(wǎng)頁的請(qǐng)求的裝置; 用于確定與所述網(wǎng)頁相關(guān)聯(lián)的文檔對(duì)象模型(DOM)樹的一部分是否存儲(chǔ)在高速緩存存儲(chǔ)器中的裝置; 用于從所述高速緩存存儲(chǔ)器檢索存儲(chǔ)著的DOM樹的可重用部分的裝置; 用于使用所述存儲(chǔ)著的DOM樹的所檢索部分和所述DOM樹的經(jīng)動(dòng)態(tài)處理的部分來構(gòu)成所請(qǐng)求的網(wǎng)頁的裝置;以及 用于在電子顯示器上顯示所請(qǐng)求的網(wǎng)頁的裝置。
      14.如權(quán)利要求13所述的`計(jì)算設(shè)備,其特征在于,進(jìn)一步包括: 用于接收與所請(qǐng)求的網(wǎng)頁相對(duì)應(yīng)的HTML代碼的裝置;以及 用于解析所接收到的HTML代碼以生成DOM樹的裝置, 其中用于確定與所述網(wǎng)頁相關(guān)聯(lián)的DOM樹的一部分是否存儲(chǔ)在高速緩存存儲(chǔ)器中的裝置包括用于確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)的裝置,并且 其中用于從所述高速緩存存儲(chǔ)器檢索所述存儲(chǔ)著的DOM樹的可重用部分的裝置包括用于在確定了所生成的DOM樹的一部分與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)時(shí)從存儲(chǔ)器檢索先前存儲(chǔ)的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算的裝置。
      15.如權(quán)利要求14所述的計(jì)算設(shè)備,其特征在于,用于確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)的裝置包括用于通過使用樹同構(gòu)比較算法來將所生成的DOM樹與存儲(chǔ)在存儲(chǔ)器中的DOM樹結(jié)構(gòu)作比較的裝置。
      16.如權(quán)利要求14所述的計(jì)算設(shè)備,其特征在于,用于確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)的裝置包括用于確定所生成的DOM樹的所述部分是否具有與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分相同的結(jié)構(gòu)的裝置。
      17.如權(quán)利要求14所述的計(jì)算設(shè)備,其特征在于,用于確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)的裝置包括用于確定所生成的DOM樹的所述部分是否與存儲(chǔ)在存儲(chǔ)器中的所述DOM樹的一個(gè)或多個(gè)部分在結(jié)構(gòu)上相似的裝置。
      18.如權(quán)利要求14所述的計(jì)算設(shè)備,其特征在于,進(jìn)一步包括用于確定用于創(chuàng)建存儲(chǔ)器中的DOM樹的計(jì)算結(jié)果的鍵值和輸入值是否等于所生成的DOM樹的鍵值和輸入值的裝置, 其中用于從存儲(chǔ)器檢索先前存儲(chǔ)的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算的裝置包括用于僅在確定了用于創(chuàng)建存儲(chǔ)器中的DOM樹的計(jì)算結(jié)果的所述鍵值和輸入值等于所生成的DOM樹的鍵值和輸入值時(shí)才檢索所述存儲(chǔ)著的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算的裝置。
      19.如權(quán)利要求14所述的計(jì)算設(shè)備,其特征在于,用于從存儲(chǔ)器檢索先前存儲(chǔ)的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算的裝置包括用于訪問存儲(chǔ)所述DOM樹的所述部分的所述計(jì)算結(jié)果的所述高速緩存存儲(chǔ)器以使得所述計(jì)算結(jié)果基于與所述DOM樹的諸部分相對(duì)應(yīng)的DOM子樹結(jié)構(gòu)按照計(jì)算出的散列值來索引的裝置。
      20.如權(quán)利要求14所述的計(jì)算設(shè)備,其特征在于,進(jìn)一步包括: 用于在確定了所生成的DOM樹與存儲(chǔ)在存儲(chǔ)器中的所述DOM樹的所述一個(gè)或多個(gè)部分中的任何部分都不同構(gòu)時(shí)完成關(guān)于所生成的DOM樹的HTML代碼計(jì)算的裝置;以及 用于在存儲(chǔ)器中存儲(chǔ)用所生成的DOM樹來索引的所述HTML計(jì)算的結(jié)果的裝置。
      21.如權(quán)利要求20所述的計(jì)算設(shè)備,其特征在于,用于存儲(chǔ)所生成的DOM樹的裝置包括用于在鍵-值數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所生成的DOM樹的至少一部分的裝置,其中DOM樹元素與相應(yīng)的HTML計(jì)算結(jié)果相關(guān)聯(lián)地存儲(chǔ)在所述鍵-值數(shù)據(jù)結(jié)構(gòu)中。
      22.如權(quán)利要求21所述的計(jì)算設(shè)備,其特征在于,進(jìn)一步包括用于使用散列映射數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)結(jié)構(gòu)化高速緩存的裝置。
      23.如權(quán)利要求21所述的計(jì)算設(shè)備,其特征在于,用于在鍵-值數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所生成的DOM樹的至少一部分的裝置包括用于在散列映射數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所生成的DOM樹的至少一部分的裝置。
      24.如權(quán)利要求23所述的 計(jì)算設(shè)備,其特征在于,用于從所述存儲(chǔ)器檢索先前存儲(chǔ)的計(jì)算的裝置包括用于評(píng)估與所述存儲(chǔ)著的DOM樹中的和所生成的DOM樹的所述部分同構(gòu)的節(jié)點(diǎn)相關(guān)聯(lián)的散列鍵的裝置。
      25.一種計(jì)算設(shè)備,包括: 存儲(chǔ)器;以及 耦合至所述存儲(chǔ)器的處理器,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行包括以下操作的操作: 接收顯示網(wǎng)頁的請(qǐng)求; 確定與所述網(wǎng)頁相關(guān)聯(lián)的文檔對(duì)象模型(DOM)樹的一部分是否存儲(chǔ)在高速緩存存儲(chǔ)器中; 從所述高速緩存存儲(chǔ)器檢索存儲(chǔ)著的DOM樹的可重用部分; 使用所述存儲(chǔ)著的DOM樹的所檢索部分和所述DOM樹的經(jīng)動(dòng)態(tài)處理的部分來構(gòu)成所請(qǐng)求的網(wǎng)頁;以及 顯示所請(qǐng)求的網(wǎng)頁。
      26.如權(quán)利要求25所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指令以執(zhí)行進(jìn)一步包括以下操作的操作: 接收與所請(qǐng)求的網(wǎng)頁相對(duì)應(yīng)的HTML代碼; 解析所接收到的HTML代碼以生成DOM樹; 其中所述處理器配置有處理器可執(zhí)行指令,以使得: 確定與所述網(wǎng)頁相關(guān)聯(lián)的DOM樹的一部分是否存儲(chǔ)在高速緩存存儲(chǔ)器中包括確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu),并且 從所述高速緩存存儲(chǔ)器檢索所述存儲(chǔ)著的DOM樹的可重用部分包括在確定了所生成的DOM樹的一部分與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)時(shí)從存儲(chǔ)器檢索先前存儲(chǔ)的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算。
      27.如權(quán)利要求26所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指令,以使得確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)包括通過使用樹同構(gòu)比較算法來將所生成的DOM樹與存儲(chǔ)在存儲(chǔ)器中的DOM樹結(jié)構(gòu)作比較。
      28.如權(quán)利要求27所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指令,以使得確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)包括確定所生成的DOM樹的所述部分是否具有與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分相同的結(jié)構(gòu)。
      29.如權(quán)利要求27所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指令,以使得確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)包括確定所生成的DOM樹的所述部分是否與存儲(chǔ)在所述存儲(chǔ)器中的所述DOM樹的一個(gè)或多個(gè)部分在結(jié)構(gòu)上相似。
      30.如權(quán)利要求27所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指令以執(zhí)行進(jìn)一步包括以下操作的操作:確定用于創(chuàng)建存儲(chǔ)器中的DOM樹的計(jì)算結(jié)果的鍵值和輸入值是否等于所生成的DOM樹的鍵值和輸入值, 其中所述處理器配置有處理器可執(zhí)行指令,以使得從存儲(chǔ)器檢索先前存儲(chǔ)的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算是僅在確定了用于創(chuàng)建存儲(chǔ)器中的DOM樹的計(jì)算結(jié)果的所述鍵值和輸入值等于所生成的DOM樹的鍵值和輸入值時(shí)才被執(zhí)行的。
      31.如權(quán)利要求27所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指令,以使得從存儲(chǔ)器檢索先前存儲(chǔ)的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算包括訪問存儲(chǔ)所述DOM樹的所述部分的所述計(jì)算結(jié)果的所述高速緩存存儲(chǔ)器,以使得所述計(jì)算結(jié)果基于與所述DOM樹的諸部分相對(duì)應(yīng)的DOM子樹結(jié)構(gòu)按照計(jì)算出的散列值來索引。
      32.如權(quán)利要求27所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指令以執(zhí)行進(jìn)一步包括以下操作的操作: 在確定了所生成的DOM樹與存儲(chǔ)在存儲(chǔ)器中的所述DOM樹的所述一個(gè)或多個(gè)部分中的任何部分都不同構(gòu)時(shí)完成關(guān)于所生成的DOM樹的HTML代碼計(jì)算;以及 在存儲(chǔ)器中存儲(chǔ)用所生成的DOM樹來索引的所述HTML計(jì)算的結(jié)果。
      33.如權(quán)利要求32所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指令,以使得存儲(chǔ)所生成的DOM樹包括在鍵-值數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所生成的DOM樹的至少一部分,其中DOM樹元素與相應(yīng)的HTML計(jì)算結(jié)果相關(guān)聯(lián)地存儲(chǔ)在所述鍵-值數(shù)據(jù)結(jié)構(gòu)中。
      34.如權(quán)利要求33所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指令,以使得結(jié)構(gòu)化高速緩存是使用散列映射數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)的。
      35.如權(quán)利要求33所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指令,以使得所述鍵-值數(shù)據(jù)結(jié)構(gòu)包括散列映射數(shù)據(jù)結(jié)構(gòu)。
      36.如權(quán)利要求35所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指令,以使得從所述存儲(chǔ)器檢索先前存儲(chǔ)的計(jì)算包括評(píng)估與所述存儲(chǔ)著的DOM樹中的和所生成的DOM樹的所述部分同構(gòu)的節(jié)點(diǎn)相關(guān)聯(lián)的散列鍵。
      37.一種其上存儲(chǔ)有處理器可執(zhí)行軟件指令的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行包括以下操作的操作: 接收顯示網(wǎng)頁的請(qǐng)求; 確定與所述網(wǎng)頁相關(guān)聯(lián)的文檔對(duì)象模型(DOM)樹的一部分是否存儲(chǔ)在高速緩存存儲(chǔ)器中; 從所述高速緩存存儲(chǔ)器檢索存儲(chǔ)著的DOM樹的可重用部分; 使用所述存儲(chǔ)著的DOM樹的所檢索部分和所述DOM樹的經(jīng)動(dòng)態(tài)處理的部分來構(gòu)成所請(qǐng)求的網(wǎng)頁;以及 在電子顯示器上顯示所請(qǐng)求的網(wǎng)頁。
      38.如權(quán)利要求37所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所存儲(chǔ)的處理器可執(zhí)行指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行進(jìn)一步包括以下操作的操作: 接收與所請(qǐng)求的網(wǎng)頁相對(duì)應(yīng)的HTML代碼; 解析所接收到的HTML代碼以生成DOM樹, 其中所存儲(chǔ)的處理器可執(zhí)行指令被配置成: 確定與所述網(wǎng)頁相關(guān)聯(lián)的DOM樹的一部分是否存儲(chǔ)在高速緩存存儲(chǔ)器中包括確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu),并且 從所述高速緩存存儲(chǔ)器檢索所述存儲(chǔ)著的DOM樹的可重用部分包括在確定了所生成的DOM樹的一部分與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)時(shí)從存儲(chǔ)器檢索先前存儲(chǔ)的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算。
      39.如權(quán)利要求38所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所存儲(chǔ)的處理器可執(zhí)行指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行操作,以使得確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)包括通過使用樹同構(gòu)比較算法來將所生成的DOM樹與存儲(chǔ)在存儲(chǔ)器中的DOM樹結(jié)構(gòu)作比較。
      40.如權(quán)利要求38所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所存儲(chǔ)的處理器可執(zhí)行指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行操作,以使得確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)包括確定所生成的DOM樹的所述部分是否具有與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分相同的結(jié)構(gòu)。
      41.如權(quán)利要求38所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所存儲(chǔ)的處理器可執(zhí)行指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行操作,以使得確定所生成的DOM樹的一部分是否與存儲(chǔ)在存儲(chǔ)器中的DOM樹的一個(gè)或多個(gè)部分同構(gòu)包括確定所生成的DOM樹的所述部分是否與存儲(chǔ)在存儲(chǔ)器中的所述DOM樹的一個(gè)或多個(gè)部分在結(jié)構(gòu)上相似。
      42.如權(quán)利要求38所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所存儲(chǔ)的處理器可執(zhí)行指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行進(jìn)一步包括以下操作的操作:確定用于創(chuàng)建存儲(chǔ)器中的DOM樹的計(jì)算結(jié)果的鍵值和輸入值是否等于所生成的DOM樹的鍵值和輸入值, 其中所存儲(chǔ)的處理器可執(zhí)行指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行操作,以使得從存儲(chǔ)器檢索先前存儲(chǔ)的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算是僅在確定了用于創(chuàng)建存儲(chǔ)器中的DOM樹的計(jì)算結(jié)果的所述鍵值和輸入值等于所生成的DOM樹的鍵值和輸入值時(shí)才被執(zhí)行的。
      43.如權(quán)利要求38所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所存儲(chǔ)的處理器可執(zhí)行指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行操作,以使得從存儲(chǔ)器檢索先前存儲(chǔ)的與所述DOM樹的同構(gòu)部分相關(guān)聯(lián)的計(jì)算包括訪問存儲(chǔ)所述DOM樹的所述部分的所述計(jì)算結(jié)果的所述高速緩存存儲(chǔ)器,以使得所述計(jì)算結(jié)果基于與所述DOM樹的諸部分相對(duì)應(yīng)的DOM子樹結(jié)構(gòu)按照計(jì)算出的散列值來索引。
      44.如權(quán)利要求38所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所存儲(chǔ)的處理器可執(zhí)行指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行進(jìn)一步包括以下操作的操作: 在確定了所生成的DOM樹與存儲(chǔ)在存儲(chǔ)器中的所述DOM樹的所述一個(gè)或多個(gè)部分中的任何部分都不同構(gòu)時(shí)完成關(guān)于所生成的DOM樹的HTML代碼計(jì)算;以及 在存儲(chǔ)器中存儲(chǔ)用所生成的DOM樹來索引的所述HTML計(jì)算的結(jié)果。
      45.如權(quán)利要求44所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所存儲(chǔ)的處理器可執(zhí)行指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行操作,以使得存儲(chǔ)所生成的DOM樹包括在鍵-值數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所生成的DOM樹的至少一部分,其中DOM樹元素與相應(yīng)的HTML計(jì)算結(jié)果相關(guān)聯(lián)地存儲(chǔ)在所述鍵-值數(shù)據(jù)結(jié)構(gòu)中。
      46.如權(quán)利要求45所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所存儲(chǔ)的處理器可執(zhí)行指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行操作,以使得結(jié)構(gòu)化高速緩存是使用散列映射數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)的。
      47.如權(quán)利要求45所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所存儲(chǔ)的處理器可執(zhí)行指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行操作,以使得所述鍵-值數(shù)據(jù)結(jié)構(gòu)包括散列映射數(shù)據(jù)結(jié)構(gòu)。
      48.如權(quán)利要求47所述的 非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所存儲(chǔ)的處理器可執(zhí)行指令被配置成使計(jì)算設(shè)備的處理器執(zhí)行操作,以使得從所述存儲(chǔ)器檢索先前存儲(chǔ)的計(jì)算包括評(píng)估與存儲(chǔ)著的DOM樹中的和所生成的DOM樹的所述部分同構(gòu)的節(jié)點(diǎn)相關(guān)聯(lián)的散列鍵。
      【文檔編號(hào)】G06F17/30GK103502983SQ201280020821
      【公開日】2014年1月8日 申請(qǐng)日期:2012年4月12日 優(yōu)先權(quán)日:2011年4月28日
      【發(fā)明者】L·西澤, G·C·卡希瓦爾, B·王, M·P·馬翰, C·S·德希倫, W·羅蒂斯, M·維克拉姆 申請(qǐng)人:高通股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1