¢500(图10)选择目录页面600。当目录页面600被请求时,移动设备可确定目录页面600是否具有与主页面500和/或购物应用中的其他页面相对应的相似结构。一旦确定目录页面600具有与主页面500相似的结构,移动设备就可检索并重用来自主页面500的DOM的目录页面600的相似结构。另外,移动设备可确定目录页面600具有不同于主页面500的结构并且可为目录页面600所独有的商品创建D0M。
[0105]目录页面600可包括描述供购买的商品列表608a_608n和/或商品类别606的标题604 (例如,本周新品)。类别可包括例如游戏、音乐、视频、畅销货、特色商品、和/或推荐商品、以及其他类别。应当领会,标题604可对应于用户在主页面500 (图10)上的选择。另外,供购买的商品608a-608n可包括:描述供购买的商品的名称612a_612n ;商品的价格614a-614n ;解说和/或描述供购买的商品的图标610a_610n ;所显示的商品评级616a-610n (例如,概述与供购买的商品的质量和/或性能有关的数据的星形或文本);以及商品的供应商;以及与供购买的商品有关的其他信息。应当领会,供购买的商品可包括例如游戏、音乐、视频或书籍、以及其他商品。
[0106]例如,移动设备可确定标题604、供购买的商品列表608a_608n和/或商品类别606可具有与主页面500中的特征相似的结构(例如,标题504、按钮502和列表506a_506n)并且可检索并重用来自主页面500D0M的相似结构。另外,移动设备可确定标题名称604(例如,“本周新品”)、游戏名称612a-612n、游戏图标608a_608n、游戏价格614a_614n、和/或游戏评级616a-616n为目录页面600所独有,并且由此可为目录页面600所独有的这些特征创建动态D0M。
[0107]因此,移动设备为目录页面600中的为目录页面600所独有的部分创建动态DOM并且重用来自主页面500的静态DOM的相似结构和/或实例。因此,由于移动设备不需要为目录页面600重构整个DOM结构,因而允许更快速地渲染目录页面600。
[0108]如果用户想要查看不同的目录页面或者返回到主页面500,则用户可例如通过选择按钮602移至购物应用中的不同目录页面。替换地或补充地,用户可例如选择目录页面600上列出的类别和/或商品之一(例如,游戏“游戏#5名称”612e)并且移至商品页面(例如,另一个(第二)页面实例)。图12和13中解说了商品页面(例如,第二页面实例)的示例。
[0109]现在参照图12,在一方面,商品详情页面700可由用户请求并且在移动设备上显示,例如,用户从目录页面600 (图11)选择商品详情页面700。当商品详情页面700被请求时,移动设备可确定商品详情页面700是否具有与目录页面600、主页面500和/或购物应用中的其他页面相对应的相似结构和/或实例。如以上参照图11所讨论的,移动设备可从主页面500和/或目录页面600的DOM检索并且重用目录页面600和/或主页面500的相似结构。另外,移动设备可为商品详情页面700中的与目录页面600和/或主页面500中的结构或项目不匹配的部分创建D0M。
[0110]例如,移动设备可确定商品详情页面700上的按钮702、游戏名称706、图标704、价格710、游戏评级708可具有与目录页面600的特征相似的结构并且可从目录页面600D0M检索和重用相似的结构。另外,移动设备可为商品详情页面700中的与目录页面600和/或主页面500中的结构或项目不匹配的部分(例如,对此商品评级选项720、更多类似商品推荐716)创建D0M。因此,移动设备为商品详情页面700中的为商品详情页面700所独有的部分创建动态DOM并且重用来自目录页面600和/或主页面500的相似结构和/或实例。因此,由于移动设备不需要为商品详情页面700重构整个DOM结构,因而允许更快速地渲染商品详情页面700。
[0111]如果用户想要查看前一页面,则用户可选择按钮702以返回购物应用中的前一页面。替换地或补充地,用户可选择例如商品详情页面700上的另一商品(例如,游戏“吉他英雄111”718)并且移至另一商品详情页面(例如,图13中解说的商品详情页面800)。
[0112]现在转到图13,解说了根据一方面的商品详情页面800的另一示例。如以上参照图12所讨论的,移动设备可确定商品详情页面800是否具有与商品详情页面700、目录页面600、主页面500和/或购物应用中的其他页面相对应的相似结构和/或实例。移动设备可从商品详情页面700、主页面500和/或目录页面600的DOM检索并且重用详情页面700、目录页面600和/或主页面500的相似结构。另外,移动设备可为商品详情页面800中的与商品详情页面700、目录页面600和/或主页面500中的结构或项目不匹配的部分创建动态D0M。例如,在此情形中,静态DOM部分可包括商品详情页面700的相同布局,而动态数据项(诸如游戏名称806、游戏评级808、游戏价格810)则由动态DOM部分来表示。
[0113]参照图14,解说了渲染经由内容提供商从web服务器和数据服务器接收到的页面(诸如网页)的装置400。在一些方面,例如,装置400可驻留在移动设备内。如所描绘的,装置400包括可表示由处理器、或软件、或其组合(例如,固件)实现的功能的功能框。装置400包括促成接收与页面相对应的web资源和数据并且渲染页面实例的电组件的逻辑编组402。逻辑编组402可包括用于诸如在计算机设备处接收对所请求的页面实例的请求的装置404。另外,逻辑编组402可包括用于确定所请求的页面实例是否对应于存储在存储器中的关于该页面的文档对象模型(DOM)的装置406,其中存储在存储器中的DOM对应于存储着的页面实例并且包括对于存储着的页面实例和所请求的页面实例两者而言相同的静态部分。另外,逻辑编组402还可包括用于如果所请求的页面实例对应于存储在存储器中的DOM则检索该DOM的与所请求的实例相对应的动态部分的装置408,其中该动态部分为所请求的页面实例所独有。另外,逻辑编组402可包括用于将DOM的与所请求的页面实例相对应的动态部分与该DOM的静态部分关联地存储的装置410。可任选地,逻辑编组402可包括用于根据DOM的静态部分和该DOM的与所请求的页面实例相对应的动态部分来渲染所请求的页面实例的装置412。因此,装置400可在渲染页面时高效率地重用静态部分,并且创建和存储共享D0M,该共享DOM具有定义与相应的一个或多个页面实例相对应的一个或多个动态DOM部分的关系。
[0114]另外,装置400可包括存储器414,其保存用于执行与电组件404、406、408、410和(可任选地)412相关联的功能的指令。虽然被示出为在存储器414外部,但是应当理解,电组件404、406、408、410和(可任选地)412可以存在于存储器414之内。
[0115]除了以上提及的高速缓存和处理技术之外,其他方面提供了用于通过除了重用HTML代码之外还重用HTML计算来改善浏览器的性能的系统、方法和设备,其中HTML计算被链接或索引至相应的DOM树结构。在加载网页时,浏览器通常执行两个高等级任务:通过因特网取回HTML代码(本文中称“网络元素”)以及执行HTML计算以处理HTML代码的内容(本文中“计算元素”)。常规浏览器通过在本地存储器中高速缓存接收自特定URL的HTML代码由此节省下载HTML的时间并且改善网络元素的方式,来改善网页渲染过程。通过高速缓存HTML代码,浏览器一接收到访问相应的HTML代码被高速缓存着的统一资源定位符(URL)或统一资源标识符(URI)的请求就可开始渲染页面。因此,常规浏览器存储HTML代码,以使得这些浏览器一确定所请求的URL/URI与具有至存储着的HTML代码的链接的URL/URI组件相匹配就可开始渲染页面,如同已在因特网上接收到该HTML那样。然而,此类浏览器未能针对计算元素,从而每当渲染相同页面时都需要重新执行计算。作为结果,常规浏览器仅将渲染时间改善到联网元素是性能瓶颈的程度。
[0116]如果数据传输速率慢于本地处理速度,则取回HTML代码就是性能瓶颈。这通常发生在需要在具有有限带宽的网络上取回许多数据的时候。然而,近年来,网络带宽已大为改善。这因3.5G和4G移动网络变得越来越可用而得到证明,其提供超过14.4Mbps的带宽。另外,一旦为URL高速缓存了 HTML代码,常规浏览器就不能够再更快速地渲染页面,这对于用户而言可能看起来似乎升级至较快速网络几乎不能改善网页渲染时间。网页正变得日益愈加复杂。现代网页需要大量计算以解析、格式化和渲染收到网页的内容。因此,渲染网页的瓶颈已从网络元素移至计算元素。[0117]各个方面提供了将HTML渲染计算高效率地映射和关联至其DOM树结构的方式,以使得为一个页面的一部分演算的计算可在渲染后续页面的一个或多个部分时不是基于URL和/或URI而是基于结构相似性来被高效率地重用。
[0118]web浏览器通过处理HTML代码以计算和定义进入显示的所有元素的方式生成供显示的页面。为计算网页元素的样式、格式和布局要求所需要的时间往往是大量的。例如,布局计算和样式格式化的组合通常占本地网页处理中的总计算时间的一半以上。另外,计算样式属性并且将其应用于DOM元素的过程通常是每当网页被请求和/或渲染时都必须执行的递归且耗时的过程。各个方面通过存储为第一页面演算的计算并且重用存储着的计算以渲染具有相同或相似DOM树结构(S卩,同构)的第二页面而无需第一和第二页面的网页URL之间有任何关联性的方式来消除这些冗余且耗时的过程。
[0119]以上参照图1和图2所讨论的方面存储DOM树,以使得洪享URL和/URI的)相同页面的不同实例可共享相同DOM树的各静态部分。在那些方面,当页面的独特实例(例如,“商品详情”页面)被请求时,页面数据(例如,超文本标记语言(html)、级联样式表(css)和javascript (js))可被取回并被用于创建DOM树的静态部分。这些静态部分可被存储在高速缓存中,以使得它们可被重用。也就是说,当存储着的页面的第二实例被请求时,重用第一实例的静态DOM部分并且专门为第二实例创建一个或多个动态部分。作为结果,这些方面允许定义D0M,以使得DOM的诸部分可被重用于渲染相同页面的不同实例。以下参照图15-20描述的方面将这些能力扩展到使得即使在URL或URI不同的情况下也能够重用HTML计算。
[0120]在渲染网页时,浏览器首先解析HTML代码(无论是经由网络接收的还是从存储器调用的)以生成DOM树。常规浏览器以及各个实施例的浏览器在该DOM树不匹配存储器中的任何DOM树结构时则处理该DOM树以执行为定义要被渲染的页面的特征和特性所需要的计算。这些计算可包括例如为要在页面上显示的每个子元素计算尺寸和样式。有许多对于任何给定的网页而言可能都需要的众所周知的计算。这些计算可包括计算布局、标识样式、执行CSS匹配、以及需要处理器和/或处理密集的计算的其他操作。在各个方面,在存储器中存储这些计算连同DOM树的相应部分。随后,每当渲染页面时,在执行计算之前将所生成的DOM树与高速缓存着的DOM树作比较以确定是否有任何匹配。如果在存储器中标识出匹配的DOM树结构,则在存储器中调用并且重用相应的HTML计算结果,而且该页面的DOM树中仅与存储着的树不匹配的那些部分被处理以完成为渲染该页面所需要的HTML计算。浏览器可使用众所周知的树同构算法来标识存储着的DOM树部分与所请求的页面的DOM树之间的结构相似性。因此,此可重用性确定是独立于URL和/或URI地作出的。
[0121]以下描述的方面通过在存储器中的DOM树中存储结果得到的计算并且基于DOM树结构进行识别以标识存储着的计算的可被重用于渲染所访问的网页的诸部分,由此增加可供浏览器重用的HTML渲染计算的量的方式,来进一步改善浏览器性能。为了达成此举,除了高速缓存DOM树的静态部分和动态部分之外,在存储器中还存储实际的计算。在各个方面,结果得到的计算可被高速缓存,以使得高速缓存着的计算被索引至其DOM树(S卩,在完成这些计算时所执行的DOM树)。在一方面,结果以键-值(即,标签和值)对的形式存储在存储器中。键或标签标识树结构元素,而值是该元素的HTML计算的结果。通过将计算索引至DOM树,可在渲染具有结构上相似的DOM树部分的任何页面时以独立于与原始高速缓存着的页面或者要被渲染的页面相关联的URL或URI的方式重用高速缓存着的计算。存储索引至DOM树的计算还允许快速地分析存储着的DOM树的结构而无需任何特殊标签、关于URL和/或URI的信息、或者任何其他附加的标识机制。
[0122]各个方面使用各种众所周知的树同构算法来识别和标识正被渲染的页面的DOM树和存储在存储器中的DOM树部分的同构部分(S卩,共享相似的树结构的部分)以识别可被重用的高速缓存着的计算。例如,浏览器可使用诸如在“The Design and Analysisof Computer Algorithms (计算机算法的设计和分析)”,Addison-Wesley, 1974中描述的Alogtime、Aho> Hopcroft、Ullman和其他同构算法之类的关于树同构的公知算法来标识匹配的DOM树部分,该文献的全部内容纳入于此。
[0123]当浏览器识别出当前DOM树的诸部分与存储着的DOM树或者存储着的DOM树部分的诸部分相匹配时,与标识出的部分相对应的高速缓存着的计算结果可被快速地且高效率地从存储器调用。这可通过以键值和输入值的形式来存储计算结果的方式达成。在这些方面,可将用于创建高速缓存着的计算结果的键值和输入值与正被渲染的当前页面的键值和输入值作比较以确定这些值是否相同,以使得存储着的计算结果的一个或多个部分可被重用。如果确定了存储着的计算的一个或多个部分是可重用的,则从存储器调用存储着的计算值并且由浏览器使用这些计算值。当页面的所有可重用的HTML计算已从存储器调用并且所有其他计算已由浏览器执行时,所检索的和所执行的计算结果可被用于显示该页面。将此能力与常规的HTML高速缓存能力相组合使得浏览器能够非常快速地显示页面而无需下载或计算新请求的HTML页面。
[0124]图15解说通过浏览器解析所请求的网页的HTML代码所生成的DOM树1500的样本部分。如图15中所解说的,在解析HTML代码时,浏览器可为每个标头创建DOM元素和/或节点。在所解说的示例中,HTML代码包含报头部分(例如,〈HEAD〉...〈/HEAD〉)和主体部分(例如,〈BODY〉...〈/BODY〉)。主体部分包含至少一个Div (章节)部分和至少一个Span(跨度)部分,如由DOM树1500中的Div (章节)和Span (跨度)节点所解说的。Div和Span节点中的每一者还可包含子部分,如由Div部分的Paragrpah (段落)部分所解说的。在完成用于渲染页面的计算的过程中,DOM树元素(例如,Body、Div、Paragraph等)可被遍历以计算各个页面组件的属性和特性。例如,对于计算所请求的页面的布局,DOM树可被遍历以提取每个元素的高度、宽度和位置的绝对值(例如,h=50、w=50、x=500、y=10 ),这些绝对值通常取决于运行时和环境因素(例如,窗口大小)并且不能提前确定。在各个方面,这些计算出的位置值可随后存储在链接至DOM树的存储器中以供在渲染包括相同或相似计算的未来页面时重用。
[0125]图16解说了可为DOM树1500中的每个元素存储计算出的值。在所解说的示例中,表示每个元素的高度、宽度、水平位置(X)和垂直位置(Y)的绝对位置值可作为散列表、散列映射、链接表、二进制表、相关联的数组被存储在存储器1610中。在各个方面,该信息可作为散列表和/或散列映射被存储在存储器1610中,以使得存储着的信息的键-值对映射至DOM树中的相应节点。例如,键-值对可被存储,以使得键元素标识DOM树元素并且(例如,经由散列映射的散列函数)定位相应的值元素(例如,该DOM元素的绝对位置值)。在各个方面,散列表和/或散列映射的维度可被良好地设计,以使得为标识出值(例如,绝对值)所需要的指令的数目独立于DOM树中的元素的数目。在各个方面,散列表和/或散列映射可被用于在单个统一的数据结构中存储这些DOM树及其相关联的属性。本领域中已知的其他数据结构或者数据结构的组合也可被使用。
[0126]图17解说了用于在浏览器的首次执行时和/或具有未标识出的DOM结构的特定网页的首次渲染时创建、处理和存储DOM树的方法1700的一方面。在方法1700中,在框1702中,浏览器可从与期望网页相对应的远程或本地服务器接收HTML代码。在框1704中,浏览器可解析接收到的HTML并且创建DOM树。在框1706中,浏览器可处理DOM树以完成所有必要的计算。在框1708中,浏览器可在存储器中高速缓存计算结果,并且在框1710中构成DOM树和/或经处理的HTML代码以供输出给显示器。在框1712中,浏览器可在其上运行该浏览器的计算设备的电子显示器上显示所构成且经处理的HTML代码连同所有关联的图像和文件。
[0127]图18解说了用于在浏览器的后续执行时创建、处理、存储、和/或检索DOM树的诸部分的方法1800的一方面。在方法1800中,在框1802中,浏览器可从服务器接收HTML代码和/或从高速缓存存储器调用HTML代码。在框1804中,浏览器可解析HTML代码并且为接收到的HTML代码创建DOM树的至少一部分。在确定框1806中,浏览器可通过确定DOM树结构是否同构来确定DOM树的所生成部分是否与存储在存储器中的一个或多个DOM树的任何部分相匹配。在各个方面,浏览器可通过评估一个或多个存储着的DOM树的索引来作出此确定。在各个方面,浏览器可对照存储在存储器中的DOM树的一个或多个部分的散列键来检查与DOM树的所生成部分相关联的散列键。在各个方面,浏览器可执行一个或多个同构算法或发起对一个或多个同构算法的执行以确定所生成的DOM树的诸部分是否与存储在存储器中的DOM树的任何部分相匹配。确定框1806中同构算法的执行可确定所生成的DOM树的诸部分是否与存储在存储器中的DOM树的诸部分在结构上相同和/或在结构上相似。
[0128]返回图18,如果确定DOM树的所生成部分不与存储在存储器中的任何DOM树的结构相匹配(即,确定框1806=“否”),则在框1808中,浏览器可处理DOM树的所生成部分并且执行相关联的计算(例如,计算元素的绝对位置、样式、执行CSS匹配等)。在框1810中,浏览器可高速缓存计算结果,其中这些结果被索引至DOM树的所执行部分。
[0129]另一方面,如果确定了 DOM树的所生成部分与存储在存储器中的DOM树的任何部分在结构上相同和/或在结构上相似(即,确定框1806= “是”),则在框1812中,浏览器可从存储器调用与匹配的DOM索引相对应的高速缓存着的计算结果。在确定框1814中,浏览器可确定存储在存储器中的匹配部分的键和/或输入数据是否与所生成部分的键和/或输入数据相同,从而指示存储着的计算可在生成所请求的HTML页面时是可重用的。如果存储在存储器中的匹配部分的键和/或输入数据与所生成部分的键和/或输入数据并不相同(即,确定框1814=“否”),则在框1818中,浏览器可处理所生成的DOM树并且执行计算。如果键和/或输入数据匹配(即,确定框1814= “是”),则在确定框1816中,浏览器可确定是否所有必要的计算都已被计算或者从存储器调用。如果不是所有计算均完成了(即,确定框1816= “否”),则浏览器可通过返回框1804来解析HTML代码的另一部分以生成DOM树的附加部分。如果所有计算均已完成(即,确定框1816= “是”),则浏览器可在框1818中验证数据并且构成供渲染的页面,以及在框1820中在计算设备的电子显示器上显示该页面。
[0130]图19解说了用于在浏览器的后续执行之际创建、处理、存储、和/或检索DOM树的诸部分的方法1900的替换方面。在方法1900中,在框1902中,浏览器可从高速缓存存储器和/或远程服务器接收HTML代码。在框1904中,浏览器可解析接收到的HTML并且基于接收到的HTML来生成DOM树的一个或多个部分。在框1908中,浏览器可通过执行实现同构算法以确定所生成的DOM树的诸部分是否与存储在存储器中的DOM树的任何部分相匹配(例如,在结构上与存储在存储器中的DOM树的任何部分相似)的线程/进程来处理所生成的DOM树部分并且将其与存储在存储器中的DOM树作比较。如果在高速缓存存储器中没有找到结构上相似和/或相同的DOM树部分(例如,同构部分),则浏览器可使用诸如以上所描述的示例结构之一之类的数据结构在存储器中存储被索引至DOM树的计算。如果在存储器中找到结构上相似和/或相同的DOM树部分(例如,同构部分),则在确定框1910中,浏览器可从高速缓存存储器提取和/或检索这些同构部分并且确定键和/或数据输入值是否匹配。在各个方面,DOM树可被存储在散列表和/或散列映射中,以使得无论何时只要所比较的DOM树的一个或多个部分被确定为同构,则键和/或输入数据就将匹配。在这些方面,可将框1908可与确定框1910和框1912组合,如由框1920所解说的。
[0131]如果确定DOM树的所生成部分的键和/或数据输入值不与存储在高速缓存存储器中的DOM树的各部分的任何键和/或数据输入值相匹配(S卩,确定步骤1910=“否”),则浏览器可通过遍历该DOM树并且执行如以上参照图17在方法1700中所描述的相关联的计算来创建、处理和/或存储所生成部分。另一方面,如果一个或多个DOM树部分被确定具有匹配的键和/或输入值(即,确定步骤1910=“是”),则在框1912中,浏览器可从存储器拉取与匹配的键和/或输入值相关联的值。在确定框1914中,可使用一个或多个已知的数据和/或HTML验证方案来验证所拉取的值(例如,从存储器检索到的存储着的计算)。如果一个或多个验证方案失败(即,确定框1914=“否”),则浏览器可通过遍历DOM树并且执行如以上参照图17在方法1700中所描述的相关联的计算来创建、处理和存储HTML计算的所生成部分。如果数据被确定为是有效的(即,确定框1914= “是”),则浏览器可在框1916中构成网页并且在框1918中在电子显示器上显示结果得到的HTML网页。
[0132]图20是适于与任何方面联用的移动计算设备的系统框图。典型的移动计算设备2000可包括耦合到内部存储器2002、显示器2003并耦合到扬声器2054的处理器2001。另夕卜,移动计算设备2000可包括可连接到无线数据链路的用于发送和接收电磁辐射的天线2004、和/或耦合到处理器2001的蜂窝电话收发机2005、以及耦合到处理器2001的移动计算设备2024。移动计算设备2000通常还包括用于接收用户输入的菜单选择按钮或摇杆开关 2008。
[0133]以上所描述的各个方面还可在诸如图21中所解说的膝上型计算机2100之类的各种计算设备内实现。许多膝上型计算机包括充当计算机的点示设备的触摸板触摸表面,并且由此可接收与在装备有触摸屏显示器的移动计算设备上实现的拖曳、滚动和轻拂手势类似的拖曳、滚动和轻拂手势。膝上型计算机2100将通常包括耦合至易失性存储器2102和诸如盘驱动器2103之类的大容量非易失性存储器的处理器2101。计算机2100还可包括耦合至处理器2101的软盘驱动器2104和压缩盘(⑶)驱动器2105。计算机设备2100还可包
括耦合至处理器2101的用于建立数据连接或接收外部存储器设备的诸如USB或FireWireli连接器插口之类的数个连接器端口,或者用于将处理器2101耦合至网络的其它网络连接电路2106。在笔记本配置中,计算机外壳包括均耦合至处理器2101的触摸板2107、键盘2108、和显示器2109。计算设备的其它配置可包括众所周知的(例如,经由USB输入)耦合至处理器的计算机鼠标或轨迹球。
[0134]处理器2001、2101可以是能通过软件指令(应用)配置成执行包括以下描述的各种实施例的功能在内的各种功能的任何可编程微处理器、微型计算机或一个或多个多处理器芯片。在一些移动接收机设备中,可提供多个处理器2101,诸如一个处理器专用于无线通信功能并且一个处理器专用于运行其他应用。通常,在软件应用被访问并被加载到处理器2001,2101中之前,这些软件应用可被存储在内部存储器2002、2102、2103中。处理器2001、2101可包括足以存储应用软件指令的内部存储器。
[0135]结合本文所公开的实施例描述的各种说明性逻辑、逻辑块、模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。此外,至少一个处理器可包括可作用于执行以上描述的一个或多个步骤和/或动作的一个或多个模块。
[0136]此外,结合本文中所公开的方面描述的方法或算法的步骤和/或动作可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中实施。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质可被耦合到处理器以使得该处理器能从/向该存储介质读写信息。在替换方案中,存储介质可以被整合到处理器。另夕卜,在一些方面,处理器和存储介质可驻留在ASIC中。另外,ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。另外,在一些方面,方法或算法的步骤和/或动作可作为代码和/或指令之一或其任何组合或集合驻留在可被纳入到计算机程序产品中的机器可读介质和/或计算机可读介质上。
[0137]在一个或更多个方面中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则这些功能可作为一条或多条指令或代码存储或传送在非瞬态计算机可读介质上。非瞬态计算机可读介质包括任何形式的、促成计算机程序从一个地方转移至另一个地方的计算机存储介质。非瞬态存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,此类非瞬态计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可用以携带或者存储指令或数据结构形式的期望程序代码且可由计算机访问的任何其它介质。如本文中所使用的盘和碟包括压缩碟(⑶)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)往往用激光以光学方式再现数据。以上的组合也应被包括在非瞬态计算机可读介质的范围内。
[0138]尽管前面的公开讨论了解说性的方面和/或实施例,但是应当注意,在其中可作出各种变更和改动而不会脱离所描述的这些方面和/或实施例的如由所附权利要求定义的范围。此外,尽管所描述的方面和/或实施例的要素可能是以单数来描述或主张权利的,但是复数也是已构想了的,除非显式地声明了限定于单数。另外,任何方面和/或实施例的全部或部分可与任何其他方面和/或实施例的全部或部分联用,除非另外声明。
【权利要求】
1.一种用于在计算设备上渲染页面的方法,包括: 在所述计算设备的处理器中接收显示网页的请求; 确定与所述网页相关联的文档对象模型(DOM)树的一部分是否存储在高速缓存存储器中; 从所述高速缓存存储器检索存储着的DOM树的可重用部分; 使用所述存储着的DOM树的所检索部分和所述DOM树的经动态处理的部分来构成所请求的网页;以及 在所述计算设备的电子显示器上显示所请求的网页。
2.如权利要求1所述的方法,其特征在于,进一步包括: 接收与所请求的网页相对应的HTML代码;以及 解析所接收到的HTML代码以生成DOM树, 其中确定与所述网页相关联的DOM树的一部分是否存储在高速缓存存储器中包括确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构,并且 其中从所述高速缓存存储器检索所述存储着的DOM树的可重用部分包括在确定了所生成的DOM树的一部分与存储在存储器中的DOM树的一个或多个部分同构时从存储器检索先前存储的与所述DOM树的同构部分相关联的计算。
3.如权利要求2所述的方法,其`特征在于,确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构包括通过使用树同构比较算法来将所生成的DOM树与存储在存储器中的DOM树结构作比较。
4.如权利要求2所述的方法,其特征在于,确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构包括确定所生成的DOM树的所述部分是否具有与存储在存储器中的DOM树的一个或多个部分相同的结构。
5.如权利要求2所述的方法,其特征在于,确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构包括确定所生成的DOM树的所述部分是否与存储在所述存储器中的所述DOM树的一个或多个部分在结构上相似。
6.如权利要求2所述的方法,其特征在于,进一步包括确定用于创建存储器中的DOM树的计算结果的键值和输入值是否等于所生成的DOM树的键值和输入值, 其中从存储器检索先前存储的与所述DOM树的同构部分相关联的计算是仅在确定了用于创建存储器中的DOM树的计算结果的键值和输入值等于所生成的DOM树的键值和输入值时才被执行。
7.如权利要求2所述的方法,其特征在于,从存储器检索先前存储的与所述DOM树的同构部分相关联的计算包括访问存储所述DOM树的所述部分的计算结果的所述高速缓存存储器,以使得所述计算结果基于与所述DOM树的诸部分相对应的DOM子树结构按照计算出的散列值来索引。
8.如权利要求2所述的方法,其特征在于,进一步包括: 在确定所生成的DOM树与存储在存储器中的所述DOM树的所述一个或多个部分中的任何部分都不同构时完成关于所生成的DOM树的HTML代码计算;以及 在存储器中存储用所生成的DOM树来索引的所述HTML计算的结果。
9.如权利要求8所述的方法,其特征在于,存储所生成的DOM树包括在键-值数据结构中存储所生成的DOM树的至少一部分,其中DOM树元素与相应的HTML计算结果相关联地存储在所述键-值数据结构中。
10.如权利要求9所述的方法,其特征在于,结构化高速缓存是使用散列映射数据结构来实现的。
11.如权利要求9所述的方法,其特征在于,所述键-值数据结构包括散列映射数据结构。
12.如权利要求11所述的方法,其特征在于,从所述存储器检索先前存储的计算包括评估与所述存储着的DOM树中的和所生成的DOM树的所述部分同构的节点相关联的散列键。
13.一种计算设备,包括: 用于接收显示网页的请求的装置; 用于确定与所述网页相关联的文档对象模型(DOM)树的一部分是否存储在高速缓存存储器中的装置; 用于从所述高速缓存存储器检索存储着的DOM树的可重用部分的装置; 用于使用所述存储着的DOM树的所检索部分和所述DOM树的经动态处理的部分来构成所请求的网页的装置;以及 用于在电子显示器上显示所请求的网页的装置。
14.如权利要求13所述的`计算设备,其特征在于,进一步包括: 用于接收与所请求的网页相对应的HTML代码的装置;以及 用于解析所接收到的HTML代码以生成DOM树的装置, 其中用于确定与所述网页相关联的DOM树的一部分是否存储在高速缓存存储器中的装置包括用于确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构的装置,并且 其中用于从所述高速缓存存储器检索所述存储着的DOM树的可重用部分的装置包括用于在确定了所生成的DOM树的一部分与存储在存储器中的DOM树的一个或多个部分同构时从存储器检索先前存储的与所述DOM树的同构部分相关联的计算的装置。
15.如权利要求14所述的计算设备,其特征在于,用于确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构的装置包括用于通过使用树同构比较算法来将所生成的DOM树与存储在存储器中的DOM树结构作比较的装置。
16.如权利要求14所述的计算设备,其特征在于,用于确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构的装置包括用于确定所生成的DOM树的所述部分是否具有与存储在存储器中的DOM树的一个或多个部分相同的结构的装置。
17.如权利要求14所述的计算设备,其特征在于,用于确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构的装置包括用于确定所生成的DOM树的所述部分是否与存储在存储器中的所述DOM树的一个或多个部分在结构上相似的装置。
18.如权利要求14所述的计算设备,其特征在于,进一步包括用于确定用于创建存储器中的DOM树的计算结果的键值和输入值是否等于所生成的DOM树的键值和输入值的装置, 其中用于从存储器检索先前存储的与所述DOM树的同构部分相关联的计算的装置包括用于仅在确定了用于创建存储器中的DOM树的计算结果的所述键值和输入值等于所生成的DOM树的键值和输入值时才检索所述存储着的与所述DOM树的同构部分相关联的计算的装置。
19.如权利要求14所述的计算设备,其特征在于,用于从存储器检索先前存储的与所述DOM树的同构部分相关联的计算的装置包括用于访问存储所述DOM树的所述部分的所述计算结果的所述高速缓存存储器以使得所述计算结果基于与所述DOM树的诸部分相对应的DOM子树结构按照计算出的散列值来索引的装置。
20.如权利要求14所述的计算设备,其特征在于,进一步包括: 用于在确定了所生成的DOM树与存储在存储器中的所述DOM树的所述一个或多个部分中的任何部分都不同构时完成关于所生成的DOM树的HTML代码计算的装置;以及 用于在存储器中存储用所生成的DOM树来索引的所述HTML计算的结果的装置。
21.如权利要求20所述的计算设备,其特征在于,用于存储所生成的DOM树的装置包括用于在键-值数据结构中存储所生成的DOM树的至少一部分的装置,其中DOM树元素与相应的HTML计算结果相关联地存储在所述键-值数据结构中。
22.如权利要求21所述的计算设备,其特征在于,进一步包括用于使用散列映射数据结构来实现结构化高速缓存的装置。
23.如权利要求21所述的计算设备,其特征在于,用于在键-值数据结构中存储所生成的DOM树的至少一部分的装置包括用于在散列映射数据结构中存储所生成的DOM树的至少一部分的装置。
24.如权利要求23所述的 计算设备,其特征在于,用于从所述存储器检索先前存储的计算的装置包括用于评估与所述存储着的DOM树中的和所生成的DOM树的所述部分同构的节点相关联的散列键的装置。
25.一种计算设备,包括: 存储器;以及 耦合至所述存储器的处理器,其中所述处理器配置有处理器可执行指令以执行包括以下操作的操作: 接收显示网页的请求; 确定与所述网页相关联的文档对象模型(DOM)树的一部分是否存储在高速缓存存储器中; 从所述高速缓存存储器检索存储着的DOM树的可重用部分; 使用所述存储着的DOM树的所检索部分和所述DOM树的经动态处理的部分来构成所请求的网页;以及 显示所请求的网页。
26.如权利要求25所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令以执行进一步包括以下操作的操作: 接收与所请求的网页相对应的HTML代码; 解析所接收到的HTML代码以生成DOM树; 其中所述处理器配置有处理器可执行指令,以使得: 确定与所述网页相关联的DOM树的一部分是否存储在高速缓存存储器中包括确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构,并且 从所述高速缓存存储器检索所述存储着的DOM树的可重用部分包括在确定了所生成的DOM树的一部分与存储在存储器中的DOM树的一个或多个部分同构时从存储器检索先前存储的与所述DOM树的同构部分相关联的计算。
27.如权利要求26所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令,以使得确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构包括通过使用树同构比较算法来将所生成的DOM树与存储在存储器中的DOM树结构作比较。
28.如权利要求27所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令,以使得确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构包括确定所生成的DOM树的所述部分是否具有与存储在存储器中的DOM树的一个或多个部分相同的结构。
29.如权利要求27所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令,以使得确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构包括确定所生成的DOM树的所述部分是否与存储在所述存储器中的所述DOM树的一个或多个部分在结构上相似。
30.如权利要求27所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令以执行进一步包括以下操作的操作:确定用于创建存储器中的DOM树的计算结果的键值和输入值是否等于所生成的DOM树的键值和输入值, 其中所述处理器配置有处理器可执行指令,以使得从存储器检索先前存储的与所述DOM树的同构部分相关联的计算是仅在确定了用于创建存储器中的DOM树的计算结果的所述键值和输入值等于所生成的DOM树的键值和输入值时才被执行的。
31.如权利要求27所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令,以使得从存储器检索先前存储的与所述DOM树的同构部分相关联的计算包括访问存储所述DOM树的所述部分的所述计算结果的所述高速缓存存储器,以使得所述计算结果基于与所述DOM树的诸部分相对应的DOM子树结构按照计算出的散列值来索引。
32.如权利要求27所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令以执行进一步包括以下操作的操作: 在确定了所生成的DOM树与存储在存储器中的所述DOM树的所述一个或多个部分中的任何部分都不同构时完成关于所生成的DOM树的HTML代码计算;以及 在存储器中存储用所生成的DOM树来索引的所述HTML计算的结果。
33.如权利要求32所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令,以使得存储所生成的DOM树包括在键-值数据结构中存储所生成的DOM树的至少一部分,其中DOM树元素与相应的HTML计算结果相关联地存储在所述键-值数据结构中。
34.如权利要求33所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令,以使得结构化高速缓存是使用散列映射数据结构来实现的。
35.如权利要求33所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令,以使得所述键-值数据结构包括散列映射数据结构。
36.如权利要求35所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令,以使得从所述存储器检索先前存储的计算包括评估与所述存储着的DOM树中的和所生成的DOM树的所述部分同构的节点相关联的散列键。
37.一种其上存储有处理器可执行软件指令的非瞬态计算机可读存储介质,所述指令被配置成使计算设备的处理器执行包括以下操作的操作: 接收显示网页的请求; 确定与所述网页相关联的文档对象模型(DOM)树的一部分是否存储在高速缓存存储器中; 从所述高速缓存存储器检索存储着的DOM树的可重用部分; 使用所述存储着的DOM树的所检索部分和所述DOM树的经动态处理的部分来构成所请求的网页;以及 在电子显示器上显示所请求的网页。
38.如权利要求37所述的非瞬态计算机可读存储介质,其特征在于,所存储的处理器可执行指令被配置成使计算设备的处理器执行进一步包括以下操作的操作: 接收与所请求的网页相对应的HTML代码; 解析所接收到的HTML代码以生成DOM树, 其中所存储的处理器可执行指令被配置成: 确定与所述网页相关联的DOM树的一部分是否存储在高速缓存存储器中包括确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构,并且 从所述高速缓存存储器检索所述存储着的DOM树的可重用部分包括在确定了所生成的DOM树的一部分与存储在存储器中的DOM树的一个或多个部分同构时从存储器检索先前存储的与所述DOM树的同构部分相关联的计算。
39.如权利要求38所述的非瞬态计算机可读存储介质,其特征在于,所存储的处理器可执行指令被配置成使计算设备的处理器执行操作,以使得确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构包括通过使用树同构比较算法来将所生成的DOM树与存储在存储器中的DOM树结构作比较。
40.如权利要求38所述的非瞬态计算机可读存储介质,其特征在于,所存储的处理器可执行指令被配置成使计算设备的处理器执行操作,以使得确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构包括确定所生成的DOM树的所述部分是否具有与存储在存储器中的DOM树的一个或多个部分相同的结构。
41.如权利要求38所述的非瞬态计算机可读存储介质,其特征在于,所存储的处理器可执行指令被配置成使计算设备的处理器执行操作,以使得确定所生成的DOM树的一部分是否与存储在存储器中的DOM树的一个或多个部分同构包括确定所生成的DOM树的所述部分是否与存储在存储器中的所述DOM树的一个或多个部分在结构上相似。
42.如权利要求38所述的非瞬态计算机可读存储介质,其特征在于,所存储的处理器可执行指令被配置成使计算设备的处理器执行进一步包括以下操作的操作:确定用于创建存储器中的DOM树的计算结果的键值和输入值是否等于所生成的DOM树的键值和输入值, 其中所存储的处理器可执行指令被配置成使计算设备的处理器执行操作,以使得从存储器检索先前存储的与所述DOM树的同构部分相关联的计算是仅在确定了用于创建存储器中的DOM树的计算结果的所述键值和输入值等于所生成的DOM树的键值和输入值时才被执行的。
43.如权利要求38所述的非瞬态计算机可读存储介质,其特征在于,所存储的处理器可执行指令被配置成使计算设备的处理器执行操作,以使得从存储器检索先前存储的与所述DOM树的同构部分相关联的计算包括访问存储所述DOM树的所述部分的所述计算结果的所述高速缓存存储器,以使得所述计算结果基于与所述DOM树的诸部分相对应的DOM子树结构按照计算出的散列值来索引。
44.如权利要求38所述的非瞬态计算机可读存储介质,其特征在于,所存储的处理器可执行指令被配置成使计算设备的处理器执行进一步包括以下操作的操作: 在确定了所生成的DOM树与存储在存储器中的所述DOM树的所述一个或多个部分中的任何部分都不同构时完成关于所生成的DOM树的HTML代码计算;以及 在存储器中存储用所生成的DOM树来索引的所述HTML计算的结果。
45.如权利要求44所述的非瞬态计算机可读存储介质,其特征在于,所存储的处理器可执行指令被配置成使计算设备的处理器执行操作,以使得存储所生成的DOM树包括在键-值数据结构中存储所生成的DOM树的至少一部分,其中DOM树元素与相应的HTML计算结果相关联地存储在所述键-值数据结构中。
46.如权利要求45所述的非瞬态计算机可读存储介质,其特征在于,所存储的处理器可执行指令被配置成使计算设备的处理器执行操作,以使得结构化高速缓存是使用散列映射数据结构来实现的。
47.如权利要求45所述的非瞬态计算机可读存储介质,其特征在于,所存储的处理器可执行指令被配置成使计算设备的处理器执行操作,以使得所述键-值数据结构包括散列映射数据结构。
48.如权利要求47所述的 非瞬态计算机可读存储介质,其特征在于,所存储的处理器可执行指令被配置成使计算设备的处理器执行操作,以使得从所述存储器检索先前存储的计算包括评估与存储着的DOM树中的和所生成的DOM树的所述部分同构的节点相关联的散列键。
【文档编号】G06F17/30GK103502983SQ201280020821
【公开日】2014年1月8日 申请日期:2012年4月12日 优先权日:2011年4月28日
【发明者】L·西泽, G·C·卡希瓦尔, B·王, M·P·马翰, C·S·德希伦, W·罗蒂斯, M·维克拉姆 申请人:高通股份有限公司

2012-2014专利技术

最新回复(0)