CN106662986B - 优化的浏览器渲染过程 - Google Patents
优化的浏览器渲染过程 Download PDFInfo
- Publication number
- CN106662986B CN106662986B CN201480079987.9A CN201480079987A CN106662986B CN 106662986 B CN106662986 B CN 106662986B CN 201480079987 A CN201480079987 A CN 201480079987A CN 106662986 B CN106662986 B CN 106662986B
- Authority
- CN
- China
- Prior art keywords
- url
- optional
- resource
- rendering result
- embedded
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0246—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
- H04L41/0273—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP]
- H04L41/0293—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP] for accessing web services by means of a binding identification of the management service or element
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Abstract
实现方式通过识别内容中性嵌入式项目并且在不获取内容中性项目的情况下渲染网页来优化浏览器渲染过程。示例方法包括识别存储在获取记录中的多个URL共有的URL模式并且从所述多个URL选择URL的样本。该方法还包括针对所述样本中的每个URL,使用该URL的内容生成第一渲染结果并且在不使用该URL的内容的情况下生成第二渲染结果,通过比较第一渲染结果与第二渲染结果来计算该URL的相似度分值,从而确定该URL是否是可选的,当相似度分值大于相似度阈值时确定该URL是可选的。所述方法还可包括当所述样本中的大多数URL是可选的时,将所述URL模式存储在可选资源模式的数据存储中。
Description
背景技术
许多网页动态地创建,这意味着由web浏览器的用户观看的最终页面至少部分地通过浏览器渲染过程来生成。诸如脚本、图像和样式表的嵌入式对象经常被嵌入网页中,并且可影响所渲染的网页的内容和外观或者可出于与生成动态内容无关的其它目的而被包括。例如,Google Analytics JavaScript代码可以是帮助跟踪网站的流量,但是不影响内容的嵌入式对象。嵌入式对象本身可包括附加嵌入式对象。类似地,一些嵌入式对象可被隐藏且对于用户而言不可见。网页可具有数以百计的嵌入式对象,并且浏览器的渲染引擎为用户渲染网页所花费的许多时间花在了等待浏览器获取(fetch)这些嵌入式资源上。
发明内容
实现方式识别可选嵌入式资源并且允许渲染引擎跳过这些资源,这改善了渲染时间。可选资源表示可被跳过而不会以有意义或显著的方式影响所渲染的网页的内容的嵌入式对象。浏览器可在渲染过程期间跳过这样的可选嵌入式资源,导致加载时间更快。
在一个方面,一种系统包括至少一个处理器和存储有指令的存储器,所述指令在由所述至少一个处理器执行时使得所述系统执行操作。所述操作可包括识别存储在获取记录中的多个URL共有的URL模式并且从所述多个URL中选择URL的样本。所述操作还包括针对所述样本中的每个URL,通过以下操作来确定该URL是不是可选的:使用该URL的内容渲染该URL的嵌入器的第一渲染结果;在不使用该URL的内容的情况下渲染嵌入器的第二渲染结果,以及通过比较第一渲染结果与第二渲染结果来计算该URL的相似度分值。所述方法还包括当所述相似度分值大于相似度阈值时确定该URL是可选的,并且当所述样本中的预定量的URL是可选的时,将URL模式存储在可选资源模式的数据存储中。
本文所述的主题的一个或更多个实现方式可包括下列特征中的一个或更多个。例如,所述操作还可包括接收对所请求的嵌入式资源的内容的请求,确定所请求的嵌入式资源是否与数据存储中的模式匹配,并且当所请求的嵌入式资源与所述模式匹配时,返回所请求的嵌入式资源是可选的指示。在一些实现方式中,所述指示可以是未找到URL错误。作为另一示例,识别存储在获取记录中的多个URL共有的URL模式的操作可包括:针对存储在所述获取记录中的相应URL,通过从该URL移除查询串的至少一部分来生成该URL的组URL;以及按照组URL对URL进行聚类。作为另一示例,识别存储在所述获取记录中的所述多个URL共有的所述URL模式的操作可包括:针对存储在所述获取记录中的相应URL,通过从该URL移除查询串的至少一部分来生成该URL的组URL;按照组URL对URL进行聚类;选择具有最高数量的成员的聚类的组URL作为URL模式。作为另一示例,计算相似度分值的操作可包括:确定所述第一渲染结果的DOM树和所述第二渲染结果的DOM树的最长共有序列;以及使用所述最长共有序列来确定相似度分值。
在另一方面,一种计算机实现的方法包括识别存储在获取记录中的多个URL共有的URL模式以及使用至少一个处理器从所述多个URL中选择URL的样本。所述方法还可包括针对所述样本中的每个URL,通过以下操作确定该URL是否是可选的:使用该URL的内容生成该URL的嵌入器的第一渲染结果,在不使用该URL的内容的情况下生成嵌入器的第二渲染结果,并且通过比较所述第一渲染结果与所述第二渲染结果来计算该URL的相似度分值,当所述相似度分值大于相似度阈值时该URL是可选的。所述方法还可包括当所述样本中的大多数URL是可选的时,将所述URL模式存储在可选资源模式的数据存储中。
本文所述的主题的一个或更多个实现方式可包括下列特征中的一个或更多个。例如,所述方法还可包括在确定所述样本中的URL是否是可选的之前,确定由所述多个URL表示的量超过大小阈值。作为另一示例,所述方法可包括当所述样本中的所有URL均是可选的时,将URL模式存储在可选资源模式的所述数据存储中。作为另一示例,识别获取记录中的所述多个URL共有的URL模式的步骤可包括针对所述获取记录中的相应URL,通过从该URL移除查询串的至少一部分来生成获取记录中的该URL的组URL,按照组URL进行聚类,并且当聚类中的成员的量满足阈值时选择所述聚类的所述组URL。
在另一方面,一种方法包括:接收渲染网页的请求;识别所述网页中需要获取的至少一个嵌入式资源;确定所述嵌入式资源是可选资源;以及在不获取所述嵌入式资源的内容的情况下将所述网页渲染为如同所述嵌入式资源不可用一样。
本文所述的主题的一个或更多个实现方式可包括下列特征中的一个或更多个。例如,确定所述嵌入式资源是可选资源可包括确定所述嵌入式资源的URL与可选资源的数据存储中的模式匹配。作为另一示例,所述方法还可包括从服务接收可选资源模式的数据存储,其中,确定所述嵌入式资源是可选资源的步骤包括确定所述嵌入式资源的URL与所述数据存储中的模式匹配。作为另一示例,确定所述嵌入式资源是可选资源的步骤可包括:通过从URL移除查询串的部分来重写所述嵌入式资源的所述URL;以及将所重写的URL与可选资源的数据存储中的模式进行匹配,其中,当所重写的URL与所述模式匹配时,所述嵌入式资源是可选的。作为另一示例,确定所述嵌入式资源是可选资源的步骤可包括:通过从URL移除查询串的至少一部分来重写所述嵌入式资源的URL;以及将所重写的URL与可选资源的数据存储中的模式进行匹配,其中,当所重写的URL与所述模式匹配时,所述嵌入式资源是可选的。
在另一方面,非暂时性计算机可读介质可包括可由形成在基底中的至少一个处理器执行的指令,其使得计算机系统执行上述一个或更多个方法。
本文所述的主题的一个或更多个实现方式可被实现为实现下列优点中的一个或更多个。作为一个示例,跳过可选嵌入式资源允许渲染引擎在不丢失内容的情况下更快速地渲染网页。浏览器不仅可跳过获取可选嵌入式资源,浏览器还跳过获取嵌入所跳过的可选嵌入式资源中的对象。所公开的实现方式因此节省了网络带宽和电池消耗。由于网页可包括数以百计的嵌入式对象,这样的优化可为显著的。
附图说明
图1图示出根据所公开的主题的示例系统。
图2是根据实现方式的所渲染的网页的渲染结果的框图。
图3是图示出根据实现方式的用于识别可选资源模式的示例过程的流程图。
图4是图示出根据实现方式的用于确定两个渲染结果是否相似的示例过程的流程图。
图5是图示出根据实现方式的用于提供优化的渲染的信息的示例过程的流程图。
图6示出可用于实现所描述的技术的计算机装置的示例。
图7示出可用于实现所描述的技术的分布式计算机装置的示例。
具体实施方式
所公开的实现方式识别可选嵌入式对象或者不显著影响所渲染的网页的内容的嵌入式对象,从而允许浏览器渲染引擎在不获取可选嵌入式对象的情况下渲染这样的网页。这改善了渲染时间和获取系统的负担,这对诸如智能电话和平板的具有有限资源的计算装置而言很重要。当利用可选嵌入式对象渲染的嵌入器网页的渲染结果与在没有可选嵌入式对象的情况下渲染的嵌入器网页的渲染结果相似时,嵌入式资源可以是用于优化渲染的候选。可通过页面中的令牌的相似度、外链的相似度、页面布局的相似度等来确定相似度。在一些实现方式中,系统可使用最长共有序列测量来确定渲染结果是否相似。在一些实现方式中,当快照的主要组件的相似度分值满足相似度阈值时,快照可被认为相似。如果系统确定嵌入式资源是可选的,则系统可将嵌入式资源(例如,其统一资源定位符或URL)存储在可选嵌入式资源的列表中。在一些实现方式中,系统可聚合可选嵌入式资源URL以识别可用于识别其它可选嵌入式资源的模式。
当浏览器开始渲染网页时,如果任何嵌入式资源为可选的,则它可请求服务。在一些实现方式中,这可作为获取请求的一部分来完成。服务可将所请求的嵌入式资源的URL与可选嵌入式对象的数据存储进行匹配(精确匹配或者与数据存储中的模式进行匹配)。如果服务发现匹配,则服务可告知浏览器哪些嵌入式资源是可选的,并且浏览器可在不获取这些嵌入式资源的情况下渲染网页。这样的优化浏览器渲染使得浏览器渲染过程的资源效率更高。在一些实现方式中,可选嵌入式资源数据存储可在浏览器类型(例如,移动浏览器和桌面浏览器)之间区分。
图1是根据示例实现方式的系统的框图。系统100可用于识别可选嵌入式资源和可选资源模式,并且使用所述模式来优化浏览器渲染过程。系统100可包括采取若干不同装置的形式的计算装置。例如,系统100可包括作为如图6中所描述的计算机装置600以及如图7中所描述的计算机装置700的示例的计算装置。
系统100可包括批渲染系统110。批渲染系统110可以是标准服务器、一组这样的服务器、客户端-服务器系统、或者机架式服务器系统。另外,批渲染系统110可被实现于个人计算机中。批渲染系统110可包括被配置为执行存储在存储器中的一个或更多个机器可执行指令或者软件片段、固件或其组合的一个或更多个处理器。例如,批渲染系统110可包括渲染引擎120、获取服务122、web爬取引擎124、和可选资源识别引擎126。批渲染系统110可按照批处理模式生成渲染的网页(例如,作为索引过程的一部分),并且在此过程中生成获取记录132,批渲染系统110可使用记录132来生成可选资源模式130。
向下传输(downstream)过程可请求批渲染系统110以批处理模式渲染网页。在一些实现方式中,批渲染系统110可包括诸如可选资源识别引擎126或者索引引擎(未示出)的向下传输过程。在一些实现方式中,向下传输过程可在不同于批渲染系统110的计算装置上执行。例如,向下传输过程可以是经由远程过程调用向批渲染系统发送请求的索引引擎或广告平台。向下传输过程可请求批渲染引擎120之一生成特定网页的渲染结果。每个批渲染引擎120可被配置为模拟用于个人web浏览器的渲染器,但是针对批渲染进行了优化。批渲染系统110可包括数以千计的批渲染引擎120并且使用负载平衡来选择批渲染引擎120之一以响应请求特定。所请求的网页可包括诸如样式表、JavaScript、图像等的嵌入式对象。批渲染引擎120可利用获取服务122来请求嵌入式对象的内容。
获取服务122可确定需要从主机服务器190获取哪些嵌入式资源、可从缓存返回哪些嵌入式资源以及哪些资源不需要返回。主机服务器190可以是可经由互联网访问的托管嵌入一个或更多个网页中的一个或更多个网页或资源的任何类型的计算装置。如果嵌入式资源需要被获取,则获取服务122可利用传统技术经由web爬取引擎124请求嵌入式对象的内容。诸如索引引擎的向下传输过程还可经由web爬取引擎124向服务器190请求内容。作为经由web爬取引擎124的获取请求的结果,批渲染系统110可生成获取记录132。获取记录132可包括关于向主机服务器190请求并从其检索了哪些网页和嵌入式对象的信息。获取记录132还可包括诸如请求的时间、嵌入器网页(如果有的话)等的附加信息。
web爬取引擎124、批渲染引擎120和获取服务122一起工作以有效地渲染大量的网页(诸如可在万维网上找到的网页)。网页的渲染是包括可用于以及或者不可用于向下传输请求过程的各种数据元素的渲染结果。可选资源识别引擎126可使用批渲染引擎120来生成可选资源模式130。可选资源识别引擎126可使用获取记录132作为输入定期地(例如,每日,一周两次等)运行。可选资源识别引擎126可分析获取记录132并且生成在先前时段中获取的URL的模式。例如,可选资源识别引擎126可将查询串从获取记录中的URL中去除,从而生成每个相应URL的组URL。查询串可以是URL中在问号(?)之后的任何字符。在一些实现方式中,可仅去除查询串的部分以生成URL的组URL。然后,可选资源识别引擎126可对组URL进行分类或聚类并且确定哪些组URL具有来自该时间段的最大数量的获取请求。
可选资源识别引擎126可选择具有最大数量的获取请求的可能模式组URL。这样的模式表示具有最大可能优化浏览过程的嵌入式资源,因为它们最经常被获取。可选资源识别引擎可确定与可能模式匹配的URL或者与可能模式匹配的URL的样本是不是可选的。例如,可选资源识别引擎126可从获取记录132识别与可能模式匹配的嵌入式资源,并且请求批渲染引擎120针对该嵌入式资源渲染嵌入器网页的第一渲染结果。嵌入器网页可例如从嵌入式资源的获取记录来识别。然后,可选资源识别引擎126可请求批渲染引擎120在不获取嵌入式资源的情况下渲染嵌入器网页的第二渲染结果。
为了确定所渲染的嵌入器网页的内容是否受跳过特定嵌入式资源的影响,可选资源识别引擎126可比较第一渲染结果和第二渲染结果。在一些实现方式中,如果内容受到显著影响,则该特定嵌入式资源可被添加到需要的资源的列表。如果内容不受显著影响(例如,内容相似),则可选资源识别引擎126可将嵌入式资源识别为可选资源。在一些实现方式中,嵌入式资源(例如,它的URL)可被存储在诸如可选资源模式130的数据存储中。在一些实现方式中,嵌入式资源可被存储在可选资源的临时列表中,该临时列表在稍后的时间用于确定可选资源的模式。可选资源识别引擎126可关于获取记录中与可能模式匹配的每一个嵌入式资源或者针对与该可能模式匹配的嵌入式资源的样本执行此测试(渲染结果的比较)。在一些实现方式中,如果与可能模式匹配的任何嵌入式资源是相关的,则该可能模式不是可选资源模式。在一些实现方式中,如果仅较小百分比的与可能模式匹配的嵌入式资源(例如,1%或更少)是需要的资源,则该可能模式被认为是可选资源模式,并且可选资源识别引擎126可包括该可能模式作为可选资源模式130中的模式。当然,如果与可能模式匹配的所有测试的嵌入式资源均为可选的,则可选资源识别引擎126可将该可能模式添加到可选资源模式130。
在一些实现方式中,可选资源识别引擎126还可验证可选资源模式130中的模式仍是可选的。例如,可选资源识别引擎126可选择与模式匹配的URL的样本、要求渲染引擎在有与模式匹配的嵌入式资源以及没有所述嵌入式资源的情况下对渲染结果进行渲染,并且比较两个渲染结果。如果与可选资源模式130中的模式匹配的URL不再是可选的,则该模式可被移除。
在一些实现方式中,可选资源识别引擎126可与完整浏览器分离地针对移动浏览器确定模式是不是可选。例如,一些网站针对移动版本的网页和完整版本的网页加载不同的内容,并且嵌入式资源可对于移动浏览器而言是可选的,但是对完整浏览器而言是所需的。因此,可选资源识别引擎126可针对嵌入式资源渲染四个渲染结果。前两个渲染结果可由模拟完整浏览器的渲染引擎渲染,而后两个渲染结果可由模拟移动装置(例如,智能电话或平板)上的移动浏览器的渲染引擎渲染。因此,可选资源模式130可包括按照浏览器类型(例如,针对移动浏览器或者针对完整浏览器)指示模式是否是可选的数据。
尽管为了简明起见在图1中未示出,在一些实现方式中,批渲染系统110可分布于两个或更多个分立的计算装置上。另外,批渲染引擎120、获取服务122、web爬取引擎124、和可选资源识别引擎126中的一个或更多个可跨一个或更多个计算装置分布。在一些实现方式中,批渲染引擎120、获取服务122、web爬取引擎124、和可选资源识别引擎126中的一个或更多个可与批渲染系统110的其它组件共享诸如存储器或硬件处理器的资源。类似地,获取记录132和可选资源模式130也可被存储在跨多个计算装置分布的存储器中。在一些实现方式中,批渲染系统110的各种组件可共享计算装置的硬件组件,或者可以是同一计算装置的逻辑分区。
批渲染系统110可经由网络160与客户端180和服务器190通信。网络160可以是例如互联网,或者网络160可以是利用例如网关装置、网桥、开关等实现的有线或无线局域网(LAN)、广域网(WAN)、这些的组合等。经由网络160,批渲染系统110可与客户端180和/或主机服务器190通信并且向其发送数据/从其接收数据。例如,批渲染系统110可将可选资源模式130提供给客户端180,或者可从客户端180接收询问特定嵌入式资源是否是可选的请求并且可基于可选资源模式130提供响应。
客户端180可以是安装有个人web浏览器140的个人计算装置,例如图6中所描绘的计算装置600。个人web浏览器的示例包括CHROME、SAFARI、INTERNET EXPLORER、FIREFOX等,无论用于诸如智能电话或平板的移动装置,还是诸如膝上型或桌面型的个人计算机。浏览器140可被配置为当渲染网页时使用服务来确定是否获取特定嵌入式资源。在一些实现方式中,系统可将可选资源模式130的副本推送给客户端180以便于浏览器140使用。从这个意义上讲,服务可以是本地服务。在一些实现方式中,浏览器140可被配置为要求基于服务器的服务确定特定嵌入式资源是否与可选资源模式130中的模式之一匹配。浏览器140通过利用该服务来执行优化的渲染以在渲染网页时跳过可选嵌入式资源。因此,浏览器140可被配置为选择性地跳过嵌入式资源以改善渲染时间并且节省内容不受影响的资源。
图2是根据实现方式的由批渲染引擎120渲染的渲染结果200的框图。渲染结果200可包括各种组件,图2中并未图示出其中的全部。例如,渲染结果200可包括渲染的页面的图像205。图像205可以是将经由web浏览器经由显示装置显示给用户的图像。图像205可用于例如将渲染的页面的缩略图显示给用户并且确定网页的元素出现在显示器上的何处(例如,基于其x和y坐标)。渲染结果200还可包括文档对象模型(DOM)树210。DOM树210表示网页的HTML结构。渲染结果200还可包括布局215。布局215通常包括用于网页的元素的框,所述框指定图像205中的元素的x和y坐标。因此,布局215提供元素出现在网页上的何处、它在网页上占据多少空间等的指示。因此,布局215提供关于有多少网页是广告、段落有多重要(例如,首屏或非首屏)、元素是否可见等的信息。换言之,布局215提供关于所渲染的网页的元素的几何信息。渲染结果200还可包括错误220。错误220包括作为运行脚本对象(例如,JavaScript)的结果遇到的错误。渲染结果200还可包括在渲染期间获取的嵌入式资源225的列表,并且可包括作为渲染过程的部分生成的其它元素(未示出)。因此,渲染结果200提供并非仅仅对经由从托管服务器获取内容可用的信息。诸如可选资源识别引擎的向下传输请求过程可将渲染结果信息用于各种目的,诸如确定运行脚本对象是否显著改变所渲染的网页的内容。例如,网页的广告部分中的内容可被认为不重要,因此即使广告部分中存在差异,URL仍可为可选的。在一些实现方式中,仅渲染结果的主要组件的差异可被认为重要。主要组件可以是布局215中的最大的框(例如,具有最大高度和宽度的框)。
图3是图示出根据实现方式的用于识别可选资源模式的示例过程300的流程图。过程300可由诸如图1的系统110的系统执行。该系统可使用过程300来从获取记录识别可选资源的模式。该系统可基于在有资源和没有资源的情况下渲染的嵌入器网页的渲染结果比较来确定可选资源的模式。模式可被存储在数据存储中并且用作允许浏览器(无论是完整浏览器、移动浏览器还是批渲染引擎)通过跳过(例如,不获取)可选资源来优化渲染的服务的一部分。
过程300可开始于系统按照可能模式对所获取的嵌入式资源进行聚类(305)。系统可选择在某一先前时间段内(例如,一天、两天、一周、自过程300最后一次运行起等)获取的所有嵌入式资源。可能模式可通过将所有或部分的查询串从在获取记录中找到的URL去除来生成。获取记录可能已通过web爬取引擎或获取服务生成。在一些实现方式中,获取记录可作为索引过程(例如,经由互联网可获得的文档的索引过程)的一部分生成。嵌入式资源可在获取记录中通过诸如URL的标识符来识别。因此,网页或嵌入式资源也可称作URL,将理解如本文所用,对嵌入式资源(或网页)和URL的引用通常是同义的。可能模式可针对URL通过去除所有或部分的查询串来生成,所述查询串是嵌入式资源的URL中跟随在问号(?)之后的任何字符。可能模式还可针对嵌入式资源通过去除或忽略子域名、忽略路径的组件(例如,介于第一正斜杠(“/”)和查询串(“?”)之间的组件)、或者忽略查询串中的特定参数来生成。在一些实现方式中,来自获取记录的嵌入式资源可与从其URL生成的多于一个的可能模式关联。可能URLs可通过分类或者通过其它已知的聚类技术来聚类。
系统可选择由可能模式之一表示的聚类(310),并且确定聚类成员的量是否大于或等于阈值(315)。聚类成员的量表示在先前时间段期间与可能模式匹配的嵌入式资源被获取的次数的量。因此,一个特定嵌入式资源如果被获取多于一次,则可在量中被表示多次。如果聚类的量低于阈值(315,否),则系统可转向下一聚类(355)。如果可能模式具有足够量的成员(315,是),则系统可选择与可能模式匹配的嵌入式资源的样本(320)。换言之,系统可对聚类的独特成员进行采样。当然,在一些实现方式中,系统可选择聚类中的所有独特嵌入式资源作为样本(例如,样本大小为100%)。然后,系统可选择样本中的嵌入式资源中的一个嵌入式资源(325)并且利用所选择的嵌入式资源生成嵌入资源的网页(例如,嵌入器网页)的第一渲染结果(330)。嵌入器网页可从获取记录确定。系统还可在不获取所选择的嵌入式资源的情况下生成嵌入器网页的第二渲染结果(330)。系统可利用例如批渲染引擎来生成两个渲染结果。然后,系统可比较第一渲染结果和第二渲染结果以确定渲染结果是否相似(335)。
系统可使用各种测试来确定渲染结果是否相似,如关于图4更详细讨论的。如果渲染结果不相似(335,否),则系统可移至下一聚类(355)。如果渲染结果相似(335,是),则系统可确定聚类样本中是否存在其它嵌入式资源待检查(340)。如果存在其它嵌入式资源(340,否),则系统可选择样本的下一嵌入式资源(345)并且重复步骤330和335,从而生成渲染结果并比较结果。如果样本中的所有嵌入式资源均已被检查(340,是),则系统可将聚类的可能模式添加到可选资源模式数据存储(350)。此数据存储可由服务用来识别不需要获取的嵌入式资源,如关于图5更详细说明的。然后,系统可确定是否存在其它聚类待检查(355)。如果留有其它聚类待分析(355,否),则系统可选择下一聚类,针对与下一聚类的可能模式匹配的嵌入式资源重复步骤315至355。如果不再有聚类待分析(355,是),则过程300完成。
示例过程300图示出一个非可选的嵌入式资源将导致可能模式被排除在可选资源模式数据存储之外(例如,335,否)的实现方式。然而,在一些实现方式中,系统可保存可能模式的可选的嵌入式资源的列表以及可能模式的需要(例如,两个渲染结果被认为不相似)的嵌入式资源的列表。在这样的实现方式中,系统可计算与可能模式匹配的需要的嵌入式资源的百分比。当该百分比非常低(例如,1%或更小)时,系统仍可将该可能模式添加到可选资源模式数据存储(350)。因此,实现方式不限于图3所示的精确过程300。
在一些实现方式中,系统可利用通过不同的浏览器类型渲染的渲染结果来重复过程300的一些或全部。例如,浏览器类型可以是完整浏览器或移动浏览器。如果第一和第二渲染结果由完整浏览器渲染,则系统可利用移动浏览器来重复步骤330至350。因此,可选资源模式的列表可包括浏览器类型的指示,数据存储中的模式也可包括浏览器类型的指示。这允许系统指示嵌入式资源是否对于一个浏览器类型(例如,移动浏览器)是可选的,对于不同的浏览器类型(例如,完整浏览器)不是可选的。
图4是图示出根据实现方式的用于确定两个渲染结果是否相似的示例过程400的流程图。过程400可例如作为图3的步骤335的一部分来执行。尽管过程400图示出用于确定渲染结果相似度的三个测试,将理解实现方式可包括所图示的测试中的一个、两个或全部,并且可包括没有图示出的附加相似度测试。
过程400可包括比较两个渲染结果中的令牌(405)。令牌包括文档的文本,例如,对用户可见的词语。令牌可通过处理DOM树(诸如图2的DOM树210)来生成。在一些实现方式中,可在执行比较之前移除停止词和数字。如果第一渲染结果的令牌不同于第二渲染结果的令牌(410,是),则可选地,系统可确定通过在打开脚本编写的情况下渲染而添加的独特令牌的量是否小于令牌阈值(415)。换言之,如果在打开脚本编写的情况下的渲染仅导致几个独特令牌,则系统可认为差异不显著。在一些实现方式中,令牌阈值可为5。如果所添加的独特令牌的量满足令牌阈值(415,否),则系统可认为渲染结果不相似(430)。当渲染结果不相似时,用于生成渲染结果的嵌入式资源不是可选的。在一些实现方式中,系统可跳过测试415且令牌的任何差异可被认为是显著的并且渲染结果不相似。如果所述量未能满足令牌阈值(415,是),则系统可认为令牌的差异不显著。因此,如果第一渲染结果的独特令牌与第二渲染结果中的令牌相同(410,否)或者独特令牌的量未能满足令牌阈值(415,是),则渲染结果可被认为相似,并且系统可继续执行其它测试。在仅包括令牌测试的实现方式中,系统可直接前进至步骤445,确定渲染结果相似。
在一些实现方式中,如果令牌相同(410,否)或者(415,是),则系统可比较外链(420)。外链表示从渲染的页面至其它网页或其它文档的链接。外链也可从渲染结果的DOM树的锚定标签节点(<a>标签)提取。如果系统发现外链的差异(425,是),则系统可认为该差异显著并且渲染结果不相似(430)。因此,嵌入式资源被认为不是可选的。如果两个渲染结果中的外链相同(425,否),则系统可认为渲染结果相似(例如,通过前进至步骤450),或者可转向执行其它相似度测试。在一些实现方式中,系统可在步骤405和415之前并且独立于步骤405和415执行步骤420和425。
在可除了其它测试之外或者代替其它测试执行的另一相似度测试中,系统可确定图像(例如,快照)、DOM树或布局之间的相似度。例如,系统可计算DOM树、布局、图像或者渲染结果的另一组件的最长共有序列(LCS)(435)。系统可使用LCS来计算表示相同的组件的百分比的相似度分值(440)。当百分比满足阈值(445,是)时,系统可确定渲染结果相似(450)。当百分比未能满足阈值(445,否)时,系统可确定渲染结果不相似(430)。一旦系统确定可渲染结果是相似(450)还是不相似(430),过程400结束。
当然,系统可作为过程400的一部分执行其它测试。例如,在另一相似度测试(图4中未示出)中,系统可确定布局的主要组件。渲染结果的布局由框构成——每个框由屏幕坐标定义。通常,每个框对应于网页的相应元素。例如,布局可包括DOM树中的DOM节点的框表示(尽管并非每一个DOM元素均可具有对应渲染框)。框可按照树结构(也被称作渲染树)来组织。因此,例如,表可由布局中的框表示,段落可由布局中的另一框表示。网页的主要组件是布局中具有最大框(由屏幕坐标定义)的那些元素。在一些实现方式中,例如,系统可将预定量的主要组件包括在集合中,以使得该集合包括最大的主要组件。在一些实现方式中,系统可将构成一定百分比的屏幕的主要组件包括在集合中。在这样的实现方式中,如果最大主要组件占据超过该百分比,则最大主要组件可以是集合的仅有成员。在一些实现方式中,框大小高于阈值大小的任何组件可被包括在主要组件的集合中。不在主要组件的集合中的组件可被认为是次要组件。在一些实现方式中,系统可使用剥洋葱技术来找到主要组件。例如,从渲染树的根框开始,系统可执行广度优先搜索并且识别根框的最大子框。然后,系统可选择最大子框并且进一步深入,以找到当前框(例如,根框的最大子框)的最大子框。当没有子框占优势(例如,占据父框面积的一半以上)时,系统可停止深入。当系统停止深入时,主要组件是未能具有优势子框的框。
系统可计算集合中的主要组件之间的相似度分值。例如,系统可使用主要组件框的交叠分值。在交叠分值中,系统可计算主要组件的交叠面积,其表示与第二渲染结果中的对应主要组件的面积交叠的第一渲染结果中的主要组件的面积。然后,系统可计算相似分值,其表示交叠的调和平均相对于每个主要组件的总面积。例如,系统可使用式其中oa是交叠面积,a1是第一渲染结果中的主要组件框的总面积,且a2是第二渲染结果中的主要组件框的总面积。当然,系统可使用其它相似度度量来计算分值。这样的相似度度量的示例可包括(但不限于)Katz相似度。如果相似度分值满足相似度阈值,则渲染结果被认为相似,因此嵌入式资源是可选的。在一些实现方式中,相似度阈值可较高,例如80%或更高。如果相似度分值未能满足阈值,则系统可认为渲染结果不相似。在一些实现方式中,如果相似度分值满足相似度阈值,则系统可基于渲染结果执行附加相似度测试(图4中未图示出)。在一些实现方式中,系统还可针对次要组件的差异计算相似度分值,但是使这些差异的权重小很多(例如,使得它们在渲染结果的最终相似度分值中占据很小部分)。
在一些实现方式中,系统可尝试最小化或消除过程400上的不可预测性的影响。当即使嵌入式资源相同渲染结果也不同时,发生不可预测性。不可预测性可导致可选的嵌入式资源看起来如同它们是需要的一样。因此,考虑不可预测性可显著添加可选资源的覆盖范围。为了考虑不可预测性,系统可生成第三渲染结果。第三渲染结果可以是使用从第一渲染结果的生成返回的资源(例如,包括样本URL)的渲染。第三渲染结果与第一渲染结果之间导致的任何差异均归因于不可预测性。系统可通过移除归因于不可预测性的任何差异(例如,在第一和第三渲染结果中不同的外链、令牌、图像、渲染树等的差异)来净化相似度。例如,系统可计算第一量和第二量,第一量表示在第一渲染结果的图像与第三渲染结果的图像之间不同的像素的数量,第二量表示在第一渲染结果和第二渲染结果的图像之间不同的像素的数量。系统可从第二量减去第一量以生成差值。该差值越靠近第二量,第一和第二渲染结果之间的任何差异不归因于不可预测性的可能性越大。因此,系统可基于该差值来调节LCS的相似度分值(例如,如果该差值等于第二量则不调节,如果该差值是第二量的一半则调节一半,等等)。作为另一示例,系统可确定在第一渲染结果和第三渲染结果之间不同的DOM节点,并且在比较第一渲染结果与第二渲染结果(例如,计算LCS)时忽略这些节点。
图5是图示出根据实现方式的提供用于优化的渲染的信息的示例过程500的流程图。过程500可作为浏览器的服务运行。浏览器可以是诸如图1的浏览器140的客户端浏览器(移动的或完整的)或者诸如图1的批渲染引擎120的批渲染引擎。在一些实现方式中,服务可以是基于云的服务。换言之,浏览器可经由网络向可向浏览器提供响应的基于云的服务发送请求。在一些实现方式中,服务可在服务器(例如,图1的批渲染系统110)上运行。在其它实现方式中,服务可以是运行浏览器的计算装置本地的。例如,可选资源模式的数据存储可被推送至运行浏览器的计算装置,服务可在计算装置处执行。在一些实现方式中,服务可在客户端(诸如图1的客户端180)上运行。
过程500开始于服务从浏览器接收URL(505)。浏览器可以是移动浏览器、完整浏览器,并且可在客户端上运行或者作为批渲染引擎运行。服务可确定来自请求的URL是否与可选资源模式匹配(510)。在一些实现方式中,模式可表示完整URL,以使得对整个请求的URL进行匹配。在一些实现方式中,模式可表示部分URL(例如,移除了查询串或者各种部分被通配符替换)。如果所请求的URL与可选资源数据存储中的至少一个模式匹配(510,是),则服务提供指示URL是可选的响应,并且嵌入器网页可在不获取内容的情况下渲染(515)。在一些实现方式中,这可以是与当无法定位资源时浏览器可接收的“没有找到URL”响应相似的响应。响应于接收到该指示,浏览器可跳过嵌入式资源渲染嵌入器网页,从而节省处理和带宽资源。如果所请求的URL不与可选资源数据存储中的模式匹配(510,否),则服务提供指示嵌入式资源是需要的响应(520)。在一些实现方式中,服务可实际执行获取并且提供嵌入式资源的内容。在一些实现方式中,服务可提供告知浏览器继续进行嵌入式资源的获取请求的响应。因此,浏览器可利用嵌入式资源的内容来渲染嵌入器网页。然后,过程500结束,提供了浏览器可用于优化渲染过程的信息。在一些实现方式中,浏览器可向服务提供浏览器类型,服务可在与可选资源数据存储中的模式进行匹配时使用浏览器类型。
图6示出可用于这里所描述的技术的一般计算机装置600的示例,其可作为图1的批渲染系统120和/或客户端180操作。计算装置600旨在表示各种示例形式的计算装置,例如膝上型计算机、桌面型计算机、工作站、个人数字助理、蜂窝电话、智能电话、平板、服务器、以及其它计算装置(包括可穿戴装置)。这里所示的组件、其连接和关系以及它们的功能意在仅为示例,而不意在限制本申请中所描述和/或要求保护的发明的实现方式。
计算装置600包括经由接口608连接的处理器602(例如,基于硅氧烷的硬件处理器)、存储器604、存储装置606、以及扩展端口610。在一些实现方式中,计算装置600可包括经由接口608连接的收发器646、通信接口644、和GPS(全球定位系统)接收器模块648以及其它组件。装置600可通过通信接口644无线地通信,其可在需要的地方包括数字信号处理电路。组件602、604、606、608、610、640、644、646和648中的每一个可被安装在公共母板上或者酌情以其它方式来安装。
处理器602可处理用于在计算装置600内执行的指令,包括存储在存储器604中或者存储装置606上以在外部输入/输出装置(例如,显示器616)上显示GUI的图形信息的指令。显示器616可以是监视器或者平板触摸屏显示器。在一些实现方式中,连同多个存储器和多种类型的存储器一起,可酌情使用多个处理器和/或多条总线。另外,可连接多个计算装置600,其中每个装置提供必要操作的部分(例如,作为服务器阵列、一组刀片服务器或者多处理器系统)。
存储器604将信息存储在计算装置600内。在一个实现方式中,存储器604是易失性存储器单元。在另一实现方式中,存储器604是非易失性存储器单元。存储器604还可以是另一形式的计算机可读介质,例如磁盘或光盘。在一些实现方式中,存储器604可包括通过扩展接口提供的扩展存储器。
存储装置606能够为计算装置600提供大容量存储。在一个实现方式中,存储装置606可以是或者可包括诸如软盘装置、硬盘装置、光盘装置或磁带装置、闪存存储器或者其它相似的固态存储器装置或者装置阵列的计算机可读介质,包括存储区域网络或者其它配置的装置。计算机程序产品可被有形地具体实现于此类计算机可读介质中。计算机程序产品还可包括指令,所述指令在被执行时执行一个或多个方法,例如上述那些方法。计算机或者机器可读介质是诸如存储器604、存储装置606、或者处理器602上的存储器的存储装置。
接口608可以是管理计算装置600的带宽密集操作的高速控制器或者管理带宽较不密集操作的低速控制器,或者这些控制器的组合。可提供外部接口640以允许装置600与其它装置的附近区域通信。在一些实现方式中,控制器608可耦合至存储装置606和扩展端口614。可包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的扩展端口可例如通过网络适配器来耦合至诸如键盘、指点装置、扫描仪的一个或多个输入/输出装置或者诸如交换机或路由器的网络装置。
如图所示,计算装置600可按照多种不同的形式来实现。例如,它可被实现为标准服务器630或者多次实现于一组此类服务器中。它还可被实现为机架服务器系统的一部分。另外,它可被实现于诸如膝上型计算机632、台式计算机634、或者平板或智能电话636的个人计算装置中。整个系统可由彼此通信的多个计算装置600构成。其它配置也是可能的。
图7示出可用于这里所描述的技术的一般计算机装置700的示例,其可以是图1的系统110。计算装置700旨在表示各种示例形式的大型数据处理装置,诸如服务器、刀片服务器、数据中心、大型机以及其它大型计算装置。计算装置700可以是具有多个处理器的分布式系统,可能包括通过一个或多个通信网络互连的附接网络的存储节点。这里所示的组件、其连接和关系以及它们的功能意在仅为示例,而并非意在限制本申请中所描述和/或要求保护的发明的实现方式。
分布式计算装置700可包括任何数量的计算装置780。计算装置780可包括经局域网或广域网、专用光学链路、调制解调器、桥、路由器、交换机、有线或无线网络等通信的服务器或机架服务器、大型机等。
在一些实现方式中,每个计算装置可包括多个机架。例如,计算装置780a包括多个机架758a-758n。每个机架可包括一个或多个处理器,例如处理器752a-752n和762a-762n。处理器可包括数据处理器、附接网络的存储装置以及其它计算机控制的装置。在一些实现方式中,一个处理器可用作主处理器并且控制调度和数据分发任务。处理器可通过一个或多个机架交换机758来互连,并且一个或多个机架可通过交换机778来连接。交换机778可处理多个连接的计算装置700之间的通信。
每个机架可包括诸如存储器754和存储器764的存储器以及诸如756和766的存储装置。存储装置756和766可提供大容量存储,并且可包括易失性或非易失性存储装置,例如附接网络的盘、软盘、硬盘、光盘、磁带、闪存或者类似的固态存储器装置或者装置阵列,包括存储区域网络或者其它配置的装置。存储装置756或766可在多个处理器、多个机架或者多个计算装置之间共享,并且可包括存储可由一个或多个处理器执行的指令的计算机可读介质。存储器754和764可包括例如易失性存储器单元、非易失性存储器单元和/或其它形式的计算机可读介质,例如磁盘或光盘、闪存、高速缓存、随机存取存储器(RAM)、只读存储器(ROM)和其组合。诸如存储器754的存储器还可在处理器752a-752n之间共享。可例如在存储装置756和存储器754上诸如索引的数据结构。计算装置700可包括未示出的其它组件,例如控制器、总线、输入/输出装置、通信模块等。
整个系统(例如系统110)可由彼此通信的多个计算装置700构成。例如,装置780a可与装置780b、780c和780d通信,并且这些装置可被统称为系统100。作为另一示例,图1的系统100可包括一个或多个计算装置700。一些计算装置可在地理上彼此靠近,其它计算装置可地理上彼此远离。计算装置700的布局仅是示例,系统可采取其它布局或配置。
各种实现方式可包括可在可编程系统上执行和/或解释的一个或多个计算机程序中的实现方式,所述可编程系统包括耦合以从存储系统接收数据和指令以及向存储系统发送数据和指令的形成在基底上的至少一个可编程处理器(可以是专用的或通用的)、至少一个输入装置和至少一个输出装置。
这些计算机程序(也称作程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可利用高级过程化和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文所用,术语“机器可读介质”、“计算机可读介质”表示用于向可编程处理器提供机器指令和/或数据的任何非暂时性计算机程序产品、设备和/或装置(例如,磁盘、光盘、存储器(包括读取存取存储器)、可编程逻辑器件(PLD))。
这里所述的系统和技术可被实现于计算系统中,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户接口或者Web浏览器的客户端计算机,用户可通过其来与这里所述的系统和技术的实现方式交互),或者此类后端、中间件或前端组件的任何组合。系统的组件可通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和互联网。
计算系统可包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络来交互。客户端和服务器的关系由于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
描述了多个实现方式。然而,在不脱离本发明的精神和范围的情况下,可进行各种修改。另外,图中所描绘的逻辑流程不要求所示的特定顺序或者依次顺序来实现期望的结果。另外,可提供其它步骤,或者可从所描述的流程排除步骤,并且可向所描述的系统添加其它组件或者从其移除组件。因此,其它实现方式在以下权利要求的范围内。
Claims (16)
1.一种计算机系统,包括:
至少一个处理器;以及
存储指令的存储器,所述指令在由所述至少一个处理器执行时使得所述系统:
识别存储在获取记录中的多个URL共有的URL模式;
从所述多个URL中选择URL的样本;
针对所述样本中的每个URL,通过以下来确定该URL是否是可选的:
使用该URL的内容来生成该URL的嵌入器的第一渲染结果;
在不使用该URL的内容的情况下生成所述嵌入器的第二渲染结果,以及
通过比较所述第一渲染结果与所述第二渲染结果来计算该URL的相似度分值;
当所述相似度分值大于相似度阈值时确定该URL是可选的;以及
当所述样本中的预定量的URL是可选的时,将所述URL模式存储在可选资源模式的数据存储中。
2.根据权利要求1所述的系统,所述指令进一步包括指令,该指令在由所述至少一个处理器执行时使得所述系统:
接收对所请求的嵌入式资源的内容的请求;
确定所请求的嵌入式资源是否与所述数据存储中的模式匹配;以及
当所请求的嵌入式资源与所述模式匹配时,返回所请求的嵌入式资源是可选的指示。
3.根据权利要求2所述的系统,其中,所述指示是未找到URL错误。
4.根据权利要求1所述的系统,其中,所述URL的量等于所述样本中的URL的量。
5.根据权利要求1所述的系统,其中,识别存储在所述获取记录中的所述多个URL共有的所述URL模式包括:
针对存储在所述获取记录中的相应URL,通过从该URL移除查询串的至少一部分来生成组URL;以及
按照组URL对URL进行聚类。
6.根据权利要求1所述的系统,其中,识别存储在所述获取记录中的所述多个URL共有的所述URL模式包括:
针对存储在所述获取记录中的相应URL,通过从该URL移除查询串的至少一部分来生成组URL;
按照组URL对URL进行聚类;
选择具有最高数量的成员的聚类的组URL作为所述URL模式。
7.根据权利要求1所述的系统,其中,计算所述相似度分值包括:
确定所述第一渲染结果的DOM树和所述第二渲染结果的DOM树的最长共有序列;以及
使用所述最长共有序列来确定所述相似度分值。
8.一种用于优化浏览器渲染的方法,包括:
使用至少一个处理器识别存储在获取记录中的多个URL共有的URL模式;
使用所述至少一个处理器从所述多个URL选择URL的样本;
针对所述样本中的每个URL,通过以下来确定该URL是否是可选的:
使用该URL的内容生成该URL的嵌入器的第一渲染结果并且在不使用该URL的内容的情况下生成所述嵌入器的第二渲染结果,以及
通过比较所述第一渲染结果与所述第二渲染结果来计算该URL的相似度分值,当所述相似度分值大于相似度阈值时该URL是可选的;以及
当所述样本中的预定量的URL是可选的时,将所述URL模式存储在可选资源模式的数据存储中。
9.根据权利要求8所述的方法,还包括:
接收对所请求的嵌入式资源的内容的请求;
确定所请求的嵌入式资源是否与所述数据存储中的模式匹配;以及
当所请求的嵌入式资源与所述模式匹配时,返回所请求的嵌入式资源是可选的指示。
10.根据权利要求8所述的方法,还包括:在确定所述样本中的URL是否是可选的之前,确定由所述多个URL表示的量超过大小阈值。
11.根据权利要求8所述的方法,还包括:当所述样本中的所有URL均是可选的时,将所述URL模式存储在可选资源模式的所述数据存储中。
12.根据权利要求8所述的方法,其中,识别所述获取记录中的所述多个URL共有的所述URL模式包括:
针对所述获取记录中的相应URL,通过从该URL移除查询串的至少一部分来生成所述获取记录中的该URL的组URL;以及
按照组URL进行聚类。
13.根据权利要求8所述的方法,其中,识别所述获取记录中的所述多个URL共有的URL模式包括:
针对所述获取记录中的相应URL,通过从该URL移除查询串的至少一部分来生成所述获取记录中的该URL的组URL;
按照组URL进行聚类;以及
当聚类中的成员的量满足阈值时选择所述聚类的所述组URL。
14.一种用于优化浏览器渲染方法,包括:
接收渲染网页的请求;
使用至少一个处理器识别所述网页中需要获取的至少一个嵌入式资源;
通过确定所述嵌入式资源的URL与可选资源的数据存储中的模式匹配,来确定所述嵌入式资源是可选资源;以及
使用所述至少一个处理器在不获取所述嵌入式资源的内容的情况下将所述网页渲染为如同所述嵌入式资源不可用一样。
15.根据权利要求14所述的方法,还包括:从服务接收可选资源模式的所述数据存储。
16.根据权利要求14所述的方法,其中,确定所述嵌入式资源是可选资源包括:
通过从URL移除查询串的至少一部分来重写所述嵌入式资源的所述URL;以及
将所重写的URL与可选资源的所述数据存储中的所述模式进行匹配,其中,当所重写的URL与所述模式匹配时,所述嵌入式资源是可选的。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/080801 WO2015196405A1 (en) | 2014-06-26 | 2014-06-26 | Optimized browser rendering process |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106662986A CN106662986A (zh) | 2017-05-10 |
CN106662986B true CN106662986B (zh) | 2019-06-21 |
Family
ID=54931851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480079987.9A Active CN106662986B (zh) | 2014-06-26 | 2014-06-26 | 优化的浏览器渲染过程 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9736212B2 (zh) |
EP (1) | EP3161610B1 (zh) |
JP (1) | JP6211722B2 (zh) |
KR (2) | KR102133486B1 (zh) |
CN (1) | CN106662986B (zh) |
RU (2) | RU2638726C1 (zh) |
WO (1) | WO2015196405A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2665920C2 (ru) | 2014-06-26 | 2018-09-04 | Гугл Инк. | Оптимизированный процесс визуализации в браузере |
WO2015196414A1 (en) | 2014-06-26 | 2015-12-30 | Google Inc. | Batch-optimized render and fetch architecture |
CN106662986B (zh) | 2014-06-26 | 2019-06-21 | 谷歌有限责任公司 | 优化的浏览器渲染过程 |
US10033656B2 (en) * | 2015-05-21 | 2018-07-24 | Sap Portals Israel Ltd | Critical rendering path optimization |
US9965451B2 (en) | 2015-06-09 | 2018-05-08 | International Business Machines Corporation | Optimization for rendering web pages |
TWI611308B (zh) * | 2016-11-03 | 2018-01-11 | 財團法人資訊工業策進會 | 網頁資料擷取裝置及其網頁資料擷取方法 |
US10691664B1 (en) * | 2017-07-18 | 2020-06-23 | FullStory, Inc. | User interface structural clustering and analysis |
EP4220446A1 (en) * | 2018-08-20 | 2023-08-02 | Google LLC | Resource pre-fetch using age threshold |
US10977333B2 (en) * | 2018-09-24 | 2021-04-13 | International Business Machines Corporation | Link corrections by cognitive analysis of web resources |
US10666528B1 (en) | 2018-11-28 | 2020-05-26 | Sap Portals Israel Ltd. | Decoupling platform as a service providers using a service management platform |
CN112950738B (zh) * | 2021-03-30 | 2022-11-11 | 杭州群核信息技术有限公司 | 渲染引擎的处理方法及装置、存储介质和电子设备 |
CN113220366A (zh) * | 2021-05-11 | 2021-08-06 | 北京达佳互联信息技术有限公司 | 子应用启动方法、装置、终端及服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003012576A2 (en) * | 2001-07-27 | 2003-02-13 | Quigo Technologies Inc. | System and method for automated tracking and analysis of document usage |
US7054917B1 (en) * | 2002-08-07 | 2006-05-30 | Propel Software Corporation | Method for accelerating delivery of content in a computer network |
CN102917067A (zh) * | 2012-10-24 | 2013-02-06 | 网宿科技股份有限公司 | 基于客户端自适应并发控制提高响应速度的方法和装置 |
Family Cites Families (107)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828879A (en) | 1994-12-22 | 1998-10-27 | Fore Systems, Inc. | Method and a scheduler for controlling when a server provides service to an entity |
JP4025379B2 (ja) | 1996-09-17 | 2007-12-19 | 株式会社ニューズウオッチ | 検索システム |
US7103794B2 (en) | 1998-06-08 | 2006-09-05 | Cacheflow, Inc. | Network object cache engine |
US6393526B1 (en) | 1997-10-28 | 2002-05-21 | Cache Plan, Inc. | Shared cache parsing and pre-fetch |
JP2987355B2 (ja) | 1998-01-21 | 1999-12-06 | 三菱電機株式会社 | ハイパーテキスト表示システム及びハイパーテキスト表示方法 |
US6173316B1 (en) * | 1998-04-08 | 2001-01-09 | Geoworks Corporation | Wireless communication device with markup language based man-machine interface |
US6271840B1 (en) | 1998-09-24 | 2001-08-07 | James Lee Finseth | Graphical search engine visual index |
US6631369B1 (en) | 1999-06-30 | 2003-10-07 | Microsoft Corporation | Method and system for incremental web crawling |
US6665838B1 (en) | 1999-07-30 | 2003-12-16 | International Business Machines Corporation | Web page thumbnails and user configured complementary information provided from a server |
US6321265B1 (en) | 1999-11-02 | 2001-11-20 | Altavista Company | System and method for enforcing politeness while scheduling downloads in a web crawler |
US7200677B1 (en) | 2000-04-27 | 2007-04-03 | Microsoft Corporation | Web address converter for dynamic web pages |
US6643641B1 (en) * | 2000-04-27 | 2003-11-04 | Russell Snyder | Web search engine with graphic snapshots |
US6714905B1 (en) * | 2000-05-02 | 2004-03-30 | Iphrase.Com, Inc. | Parsing ambiguous grammar |
US6704728B1 (en) * | 2000-05-02 | 2004-03-09 | Iphase.Com, Inc. | Accessing information from a collection of data |
US8640017B1 (en) * | 2000-05-02 | 2014-01-28 | International Business Machines Corporation | Bootstrapping in information access systems |
JP3703080B2 (ja) | 2000-07-27 | 2005-10-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ウェブコンテンツを簡略化するための方法、システムおよび媒体 |
US7231606B2 (en) | 2000-10-31 | 2007-06-12 | Software Research, Inc. | Method and system for testing websites |
US6865192B1 (en) | 2000-12-22 | 2005-03-08 | Sprint Communications Company L.P. | Integrated services hub self configuration |
JP2002297619A (ja) | 2001-03-29 | 2002-10-11 | Brother Ind Ltd | 広告情報提供システム、広告情報閲覧装置、広告情報閲覧方法及び広告情報閲覧プログラム |
US6763362B2 (en) | 2001-11-30 | 2004-07-13 | Micron Technology, Inc. | Method and system for updating a search engine |
US7200680B2 (en) | 2002-03-11 | 2007-04-03 | Ericsson Inc. | Method, apparatus and system for providing multimedia messages to incompatible terminals |
US7136875B2 (en) | 2002-09-24 | 2006-11-14 | Google, Inc. | Serving advertisements based on content |
US7231442B2 (en) * | 2002-04-03 | 2007-06-12 | Tonic Software, Inc. | Global network monitoring system |
US7441010B2 (en) * | 2002-06-06 | 2008-10-21 | International Business Machines Corporation | Method and system for determining the availability of in-line resources within requested web pages |
US7188359B2 (en) * | 2002-12-18 | 2007-03-06 | America Online, Inc. | Optimizing authentication service availability and responsiveness via client-side routing |
US20050108340A1 (en) | 2003-05-15 | 2005-05-19 | Matt Gleeson | Method and apparatus for filtering email spam based on similarity measures |
GB0315154D0 (en) * | 2003-06-28 | 2003-08-06 | Ibm | Improvements to hypertext integrity |
US7725452B1 (en) * | 2003-07-03 | 2010-05-25 | Google Inc. | Scheduler for search engine crawler |
US7895523B2 (en) * | 2003-09-04 | 2011-02-22 | International Business Machines Corporation | Method, system and program product for obscuring supplemental web content |
US7457823B2 (en) * | 2004-05-02 | 2008-11-25 | Markmonitor Inc. | Methods and systems for analyzing data related to possible online fraud |
US8353028B2 (en) | 2004-06-21 | 2013-01-08 | Ebay Inc. | Render engine, and method of using the same, to verify data for access and/or publication via a computer system |
US7644107B2 (en) | 2004-09-30 | 2010-01-05 | Microsoft Corporation | System and method for batched indexing of network documents |
US7613703B2 (en) * | 2004-09-30 | 2009-11-03 | Microsoft Corporation | Organizing resources into collections to facilitate more efficient and reliable resource access |
WO2006043274A2 (en) * | 2004-10-22 | 2006-04-27 | Flash Networks Ltd | Method and system for accelerating downloading of web pages. |
JP4712722B2 (ja) | 2004-10-22 | 2011-06-29 | 株式会社Access | パラメータ設定、記憶方法 |
US8812551B2 (en) | 2004-11-18 | 2014-08-19 | International Business Machines Corporation | Client-side manipulation of tables |
US20060129463A1 (en) | 2004-12-15 | 2006-06-15 | Zicherman Amir S | Method and system for automatic product searching, and use thereof |
US7536389B1 (en) | 2005-02-22 | 2009-05-19 | Yahoo ! Inc. | Techniques for crawling dynamic web content |
US20070005652A1 (en) | 2005-07-02 | 2007-01-04 | Electronics And Telecommunications Research Institute | Apparatus and method for gathering of objectional web sites |
US8527504B1 (en) | 2005-09-01 | 2013-09-03 | At&T Intellectual Property Ii, L.P. | Data network content filtering using categorized filtering parameters |
US8271611B2 (en) | 2005-09-28 | 2012-09-18 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system of invoking MIDlets from a web browser on a local device |
CN101346634B (zh) | 2005-11-04 | 2012-10-24 | 甲骨文国际公司 | 用于通信网络中的网守的系统和方法 |
CN101075236A (zh) | 2006-06-12 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 一种加快浏览器网页显示的装置和方法 |
US20080010642A1 (en) | 2006-06-30 | 2008-01-10 | Maclellan Scot | Method, system and computer program for scheduling execution of work units with monitoring of progress thereof |
US8015162B2 (en) | 2006-08-04 | 2011-09-06 | Google Inc. | Detecting duplicate and near-duplicate files |
CN101201827B (zh) | 2006-12-14 | 2013-02-20 | 阿里巴巴集团控股有限公司 | 一种网页显示的方法和系统 |
US7886042B2 (en) | 2006-12-19 | 2011-02-08 | Yahoo! Inc. | Dynamically constrained, forward scheduling over uncertain workloads |
US7694054B2 (en) | 2007-04-26 | 2010-04-06 | Microsoft Corporation | Governing access to a computing resource |
US8578261B1 (en) | 2007-06-22 | 2013-11-05 | Adobe Systems Incorporated | Active preview of hyperlink content in browser supported file-format |
US9906549B2 (en) | 2007-09-06 | 2018-02-27 | Microsoft Technology Licensing, Llc | Proxy engine for custom handling of web content |
US8751626B2 (en) | 2007-10-23 | 2014-06-10 | Microsoft Corporation | Model-based composite application platform |
US20090164502A1 (en) * | 2007-12-24 | 2009-06-25 | Anirban Dasgupta | Systems and methods of universal resource locator normalization |
NZ566291A (en) | 2008-02-27 | 2008-12-24 | Actionthis Ltd | Methods and devices for post processing rendered web pages and handling requests of post processed web pages |
US8131753B2 (en) | 2008-05-18 | 2012-03-06 | Rybak Ilya | Apparatus and method for accessing and indexing dynamic web pages |
US8307431B2 (en) * | 2008-05-30 | 2012-11-06 | At&T Intellectual Property I, L.P. | Method and apparatus for identifying phishing websites in network traffic using generated regular expressions |
US8316124B1 (en) * | 2008-09-29 | 2012-11-20 | Amazon Technologies, Inc. | Managing network data display |
CN101763357B (zh) | 2008-11-13 | 2016-09-14 | 北京搜狗科技发展有限公司 | 一种用于浏览器加载互联网资源的方法及系统 |
CN101504648A (zh) * | 2008-11-14 | 2009-08-12 | 北京搜狗科技发展有限公司 | 展现网页资源的方法及装置 |
US20100131488A1 (en) | 2008-11-26 | 2010-05-27 | Yahoo! Inc. | Digital Images of Web Pages |
CA2782674C (en) | 2008-12-03 | 2016-02-02 | Mobophiles, Inc. | System and method for providing virtual web access |
US8356247B2 (en) | 2008-12-16 | 2013-01-15 | Rich Media Worldwide, Llc | Content rendering control system and method |
US8543580B2 (en) * | 2008-12-23 | 2013-09-24 | Microsoft Corporation | Mining translations of web queries from web click-through data |
US8880498B2 (en) * | 2008-12-31 | 2014-11-04 | Fornova Ltd. | System and method for aggregating and ranking data from a plurality of web sites |
US8539359B2 (en) * | 2009-02-11 | 2013-09-17 | Jeffrey A. Rapaport | Social network driven indexing system for instantly clustering people with concurrent focus on same topic into on-topic chat rooms and/or for generating on-topic search results tailored to user preferences regarding topic |
US9311425B2 (en) * | 2009-03-31 | 2016-04-12 | Qualcomm Incorporated | Rendering a page using a previously stored DOM associated with a different page |
CN101587495A (zh) | 2009-07-08 | 2009-11-25 | 伍帝州 | 通过浏览器下载部署应用并提供应用入口的方法及系统 |
US8868637B2 (en) * | 2009-09-02 | 2014-10-21 | Facebook, Inc. | Page rendering for dynamic web pages |
JP2011065488A (ja) | 2009-09-17 | 2011-03-31 | Sony Corp | 情報処理装置、データ取得方法及びプログラム |
US8392748B2 (en) | 2009-10-06 | 2013-03-05 | Microsoft Corporation | Reliable media streaming |
US20110112995A1 (en) | 2009-10-28 | 2011-05-12 | Industrial Technology Research Institute | Systems and methods for organizing collective social intelligence information using an organic object data model |
US8689117B1 (en) | 2009-10-30 | 2014-04-01 | Google Inc. | Webpages with conditional content |
JP2011108102A (ja) | 2009-11-19 | 2011-06-02 | Sony Corp | ウェブサーバ、ウェブブラウザおよびウェブシステム |
US8738686B2 (en) * | 2009-12-30 | 2014-05-27 | Teradata Us, Inc. | Dynamic resource management |
US8768926B2 (en) * | 2010-01-05 | 2014-07-01 | Yahoo! Inc. | Techniques for categorizing web pages |
US8250478B2 (en) * | 2010-01-28 | 2012-08-21 | Microsoft Corporation | State persistence and background initialization for post-back web applications |
KR101122700B1 (ko) * | 2010-03-08 | 2012-03-12 | (주)이앤비소프트 | Url 정보 발신 방법 |
JP2011221616A (ja) | 2010-04-05 | 2011-11-04 | Nec Corp | Urlフィルタリングシステム、システム制御方法およびシステム制御用プログラム |
US8346755B1 (en) | 2010-05-04 | 2013-01-01 | Google Inc. | Iterative off-line rendering process |
US8446411B2 (en) | 2010-06-11 | 2013-05-21 | Microsoft Corporation | Adaptive image rendering and use of imposter |
US8676978B2 (en) * | 2010-08-03 | 2014-03-18 | Facebook, Inc. | Efficient storage and retrieval of resources for rendering structured documents |
JP5279793B2 (ja) | 2010-10-25 | 2013-09-04 | 京セラ株式会社 | 携帯端末、携帯端末の制御方法及びプログラム |
US8849991B2 (en) | 2010-12-15 | 2014-09-30 | Blue Coat Systems, Inc. | System and method for hypertext transfer protocol layered reconstruction |
WO2012101585A1 (en) | 2011-01-28 | 2012-08-02 | Strangeloop Networks, Inc. | Prioritized image rendering based on position within a web page |
US10204327B2 (en) * | 2011-02-05 | 2019-02-12 | Visa International Service Association | Merchant-consumer bridging platform apparatuses, methods and systems |
US8707162B1 (en) | 2011-03-22 | 2014-04-22 | Google Inc. | Methods and systems for reducing web page transmission bandwidth |
US8799262B2 (en) | 2011-04-11 | 2014-08-05 | Vistaprint Schweiz Gmbh | Configurable web crawler |
RU2453916C1 (ru) * | 2011-05-05 | 2012-06-20 | Игорь Викторович Лебедев | Способ поиска информационных ресурсов с использованием переадресаций |
US8655865B1 (en) | 2011-05-27 | 2014-02-18 | Adobe Systems Incorporated | Method and apparatus for indexing rich internet content using contextual information |
US8538949B2 (en) * | 2011-06-17 | 2013-09-17 | Microsoft Corporation | Interactive web crawler |
US20130007586A1 (en) * | 2011-06-29 | 2013-01-03 | Renjit Tom Thomas | Method and system for creating and using web feed display templates |
WO2013038320A1 (en) * | 2011-09-16 | 2013-03-21 | Strangeloop Networks, Inc. | Mobile resource accelerator |
US20130117252A1 (en) | 2011-11-09 | 2013-05-09 | Google Inc. | Large-scale real-time fetch service |
CN103843024A (zh) * | 2012-01-05 | 2014-06-04 | 维萨国际服务协会 | 交易视觉捕获装置、方法和系统 |
US20150172228A1 (en) * | 2012-04-17 | 2015-06-18 | George Zalepa | Method and system for communicating information over a network |
US8910132B2 (en) * | 2012-07-13 | 2014-12-09 | Facebook, Inc. | Client-side script bundle management system |
US20140053056A1 (en) | 2012-08-16 | 2014-02-20 | Qualcomm Incorporated | Pre-processing of scripts in web browsers |
EP2728481A1 (en) | 2012-11-04 | 2014-05-07 | Rightware Oy | Evaluation of page load performance of web browser |
CN103034503B (zh) | 2012-12-25 | 2016-07-06 | 北京奇虎科技有限公司 | 一种脚本执行方法、系统及浏览器 |
US20140189534A1 (en) * | 2012-12-31 | 2014-07-03 | Google Inc. | Customizing shared web resource snapshots |
US9286408B2 (en) * | 2013-01-30 | 2016-03-15 | Hewlett-Packard Development Company, L.P. | Analyzing uniform resource locators |
US9256795B1 (en) * | 2013-03-15 | 2016-02-09 | A9.Com, Inc. | Text entity recognition |
US8601565B1 (en) | 2013-06-19 | 2013-12-03 | Edgecast Networks, Inc. | White-list firewall based on the document object model |
US8924850B1 (en) | 2013-11-21 | 2014-12-30 | Google Inc. | Speeding up document loading |
US9646254B2 (en) * | 2014-06-20 | 2017-05-09 | Amazon Technologies, Inc. | Predicting next web pages |
CN106662986B (zh) | 2014-06-26 | 2019-06-21 | 谷歌有限责任公司 | 优化的浏览器渲染过程 |
RU2665920C2 (ru) | 2014-06-26 | 2018-09-04 | Гугл Инк. | Оптимизированный процесс визуализации в браузере |
WO2015196414A1 (en) | 2014-06-26 | 2015-12-30 | Google Inc. | Batch-optimized render and fetch architecture |
-
2014
- 2014-06-26 CN CN201480079987.9A patent/CN106662986B/zh active Active
- 2014-06-26 RU RU2017102351A patent/RU2638726C1/ru active
- 2014-06-26 EP EP14895822.6A patent/EP3161610B1/en active Active
- 2014-06-26 JP JP2016574382A patent/JP6211722B2/ja active Active
- 2014-06-26 KR KR1020177021521A patent/KR102133486B1/ko active IP Right Grant
- 2014-06-26 WO PCT/CN2014/080801 patent/WO2015196405A1/en active Application Filing
- 2014-06-26 KR KR1020177000222A patent/KR101768181B1/ko active IP Right Grant
- 2014-11-03 US US14/531,080 patent/US9736212B2/en active Active
-
2017
- 2017-08-09 US US15/672,895 patent/US10284623B2/en active Active
- 2017-12-06 RU RU2017142592A patent/RU2756482C2/ru active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003012576A2 (en) * | 2001-07-27 | 2003-02-13 | Quigo Technologies Inc. | System and method for automated tracking and analysis of document usage |
US7054917B1 (en) * | 2002-08-07 | 2006-05-30 | Propel Software Corporation | Method for accelerating delivery of content in a computer network |
CN102917067A (zh) * | 2012-10-24 | 2013-02-06 | 网宿科技股份有限公司 | 基于客户端自适应并发控制提高响应速度的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2017527005A (ja) | 2017-09-14 |
CN106662986A (zh) | 2017-05-10 |
US10284623B2 (en) | 2019-05-07 |
KR102133486B1 (ko) | 2020-07-13 |
RU2017142592A (ru) | 2019-06-06 |
US20150381699A1 (en) | 2015-12-31 |
JP6211722B2 (ja) | 2017-10-11 |
EP3161610A4 (en) | 2017-11-29 |
RU2017142592A3 (zh) | 2021-04-08 |
US9736212B2 (en) | 2017-08-15 |
KR101768181B1 (ko) | 2017-08-16 |
US20170359402A1 (en) | 2017-12-14 |
KR20170092707A (ko) | 2017-08-11 |
KR20170007521A (ko) | 2017-01-18 |
EP3161610A1 (en) | 2017-05-03 |
RU2756482C2 (ru) | 2021-09-30 |
EP3161610B1 (en) | 2020-08-05 |
RU2638726C1 (ru) | 2017-12-15 |
WO2015196405A1 (en) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106662986B (zh) | 优化的浏览器渲染过程 | |
US11328114B2 (en) | Batch-optimized render and fetch architecture | |
Wang et al. | Performance prediction for apache spark platform | |
US10713330B2 (en) | Optimized browser render process | |
US11645438B2 (en) | Generating a template-driven schematic from a netlist of electronic circuits | |
JP2018160264A (ja) | バッチ最適化レンダリング及びフェッチアーキテクチャ | |
CN102821144A (zh) | 一种在云中部署网络服务的方法 | |
US20160070564A1 (en) | Dynamically schematized log messages for software applications | |
Sinaei et al. | Run-time mapping algorithm for dynamic workloads using association rule mining | |
JP6397101B2 (ja) | 最適化されたブラウザレンダリング処理 | |
US8510696B2 (en) | Ordering of statistical correlated quantities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: American California Applicant after: Google limited liability company Address before: American California Applicant before: Google Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |