用于改进对搜索结果的访问的系统和方法

文档序号:6532726阅读:173来源:国知局
用于改进对搜索结果的访问的系统和方法
【专利摘要】本公开的各方面提供了一种用于对搜索结果页面进行预渲染的系统100和方法300。搜索引擎可以对从客户端接收的搜索查询进行处理。搜索引擎可以响应于搜索查询302确定一个或多个搜索结果。一个或多个搜索结果可以与预渲染指令900相关联,使得当搜索结果被客户端接收时,客户端对与预渲染指令400相关联的搜索结果进行预渲染。预渲染指令可以以各种方式与搜索结果相关联,包括基于相关性700对搜索结果进行排名,或者基于选择可能性800对搜索结果进行排名。可以从客户端收集度量和分析数据以改进搜索结果预渲染过程1000。
【专利说明】用于改进对搜索结果的访问的系统和方法
[0001] 相关申请的夺叉引用
[0002] 本申请要求于2012年1月19日提交的题为"System And Method For Improving Access To Search Results"的美国专利申请No. 13/353,626的权益,其公开内容因此通过 引用合并于此。

【背景技术】
[0003] 万维网的出现已经将比之前更多的信息放在今天用户的指尖。各种网站迎合几乎 每一种需求和兴趣,提供对参考信息、商业和金融文档、社交网络等的访问。各种各样宽度 的互联网访问对这些站点提供了比之前更为快速的访问。
[0004] 然而,尽管当前的高速互联网服务快,但是浏览web的活动也并非是即时的。当 用户选择页面上的链接或者在文本域中输入统一资源定位符(URL)时,在数据被从主机请 求、发送至客户端以及在浏览器中渲染时存在着延迟。用户通常在等待其所请求的站点加 载时无事可做。虽然高速互联网访问能够将该延迟限制为几秒钟,但即使这样短暂的延迟 可能加起来每年也会是数千个人力小时的生产力损失。


【发明内容】

[0005] 本公开的各方面提供了一种用于预渲染搜索结果页面的系统和方法。互联网搜索 引擎可以对从客户端接收的搜索查询进行处理。该互联网搜索引擎可以响应于该搜索查询 而确定一个或多个搜索结果。搜索结果中的一个或多个可以与预渲染指令相关联,使得当 搜索结果被客户端接收时,该客户端预先渲染与该预渲染指令相关联的搜索结果。预渲染 指令可以以各种方式与搜索结果相关联,包括基于相关性对搜索结果进行排名,或者基于 选择可能性对搜索结果进行排名。可以从客户端收集度量和分析数据以改进搜索结果预渲 染过程。例如,可以捕捉与用户是否选择了与预渲染指令相关联的链接相关联的统计以改 进预渲染预测。
[0006] 可以经由要求用户"选择参加"提供度量和分析数据的过程来捕捉所述度量和分 析数据。该系统和方法可以为客户端数据提供隐私保护,包括例如个人可识别信息的匿名 化、数据的聚合、敏感信息的过滤、敏感信息的加密、散列或过滤以去除个人属性、对信息存 储的时间限制、和/或对数据使用或分享的限制。数据可以被匿名化并聚合而使得个体客 户端数据不被揭示。用户还可以被提供选择参加/退出使得能够收集和分享数据的机会。
[0007] 本公开的各方面描述了一种计算机实施的用于使用搜索结果页面进行预渲染的 方法。该方法可以包括使用处理器确定响应于搜索查询的至少一个搜索结果,生成包括该 至少一个搜索结果的搜索结果页面,在该至少一个搜索结果中识别至少一个预渲染候选, 该至少一个预渲染候选指示可能被选择的搜索结果,在搜索结果页面中嵌入对该至少一个 预渲染候选的预渲染指令,以及将该搜索结果页面提供至提供了该搜索查询的客户端设 备。该至少一个预渲染候选可以使用至少一个信号来识别,其中该至少一个信号是搜索结 果被选择的频率、从搜索引擎流向搜索结果的业务量、客户端设备的位置、或者与该搜索结 果相关联的一个或多个资源的大小。该预渲染指令可以被嵌入在与至少一个搜索结果相关 联的超文本标记语言标签内。该预渲染指令可以经由客户端侧的脚本被提供至客户端设 备。该方法可以进一步包括从客户端设备接收指示该预渲染候选在显示时是否被选择的度 量,以及使用该度量来识别响应于后续搜索查询的未来的预渲染候选。该度量可以是所选 择的链接是否被预渲染或者所选择的链接的加载时间中的至少一个。该方法可以进一步包 括在搜索结果页面中嵌入实验标识符,该实验标识符对应于用来识别至少一个预渲染候选 的特定方法,使用与搜索结果页面相关联的一个或多个重定向操作来识别与选择操作以及 至少一个预渲染候选是否被选择相关联的实验标识符。
[0008] 本公开的各方面还描述了一种计算机实施的用于使用搜索结果页面进行预渲染 的方法。该方法可以包括向搜索引擎发送搜索查询,接收响应于该搜索查询的搜索结果集 合,该搜索结果集合包括指示搜索结果中的至少一个是用于预渲染的候选的至少一个预渲 染指令,识别该至少一个预渲染指令,以及预渲染与该至少一个预渲染指令相关联的至少 一个搜索结果。该方法可以进一步包括监视对从搜索结果集合选择的搜索结果执行的选择 操作,以及如果所选择的搜索结果是该至少一个搜索结果则将该至少一个搜索结果交换到 活动浏览器实例中。该方法可以包括存储与从搜索结果集合选择的搜索结果的选择相关 联的度量,并且传送该度量以提供统计数据来改进响应于后续搜索查询对预渲染候选的选 择。该度量可以是所选择的搜索结果、所选择的搜索结果是否为该至少一个搜索结果、以及 用于访问所选择的搜索结果的页面加载时间中的至少一个。该方法可以进一步包括执行该 预渲染指令以将预渲染标签插入到与该至少一个搜索结果相关联的超链接中。该度量可以 进一步包括嵌入在搜索结果集合中的实验标识符,该实验标识符指示用于将搜索结果中的 至少一个选择为预渲染的候选的方法。
[0009] 本公开的各方面可以提供一种包括指令的非瞬时的计算机可读存储介质。当被处 理器执行时,该指令可以执行一种方法,该方法包括向搜索引擎发送搜索查询,接收响应于 该搜索查询的搜索结果集合,该搜索结果集合包括指示搜索结果中的至少一个是用于预渲 染的候选的至少一个预渲染指令,识别该至少一个预渲染指令,以及预渲染与该至少一个 预渲染指令相关联的至少一个搜索结果。该指令可以包括监视对从搜索结果集合选择的搜 索结果执行的选择操作,以及如果所选择的搜索结果是该至少一个搜索结果则将该至少一 个搜索结果交换到活动浏览器实例中。该指令可以包括存储对与从搜索结果集合选择的搜 索结果的选择相关联的度量,传送该度量以提供统计数据来改进响应于后续搜索查询对预 渲染候选的选择。该度量可以是所选择的搜索结果、所选择的搜索结果是否为该至少一个 搜索结果、以及用于访问所选择的搜索结果的页面加载时间中的至少一个。该度量可以进 一步包括嵌入在搜索结果集合中的实验标识符,该实验标识符指示用于将搜索结果的至少 一个选择为预渲染的候选的方法。
[0010] 本公开的各方面可以提供一种用于使用搜索结果页面进行预渲染的处理系统。该 处理系统可以包括耦合至至少一个处理器的存储器以及至少一个处理器。该处理器可以被 配置为确定响应于搜索查询的至少一个搜索结果,生成包括搜索结果页面,该搜索结果页 面包括该至少一个搜索结果,在该至少一个搜索结果中识别至少一个预渲染候选,该至少 一个预渲染候选指示可能被选择的搜索结果,在搜索结果页面中嵌入对该至少一个预渲染 候选的预渲染指令,以及将该搜索结果页面提供至提供了该搜索查询的客户端设备。该至 少一个预渲染候选可以使用至少一个信号来识别,其中该至少一个信号是搜索结果被选择 的频率、从搜索引擎流向搜索结果的业务量、客户端设备的位置、或者与该搜索结果相关联 的一个或多个资源的大小。该预渲染指令可以被嵌入在与该至少一个搜索结果相关联的超 文本标记语言标签内。该预渲染指令可以经由客户端侧的脚本被提供至客户端设备。该处 理器可以进一步被配置为从客户端设备接收指示该预渲染候选在显示时是否被选择的度 量,以及使用该度量来识别响应于后续搜索查询的未来的预渲染候选。该度量可以是所选 择的链接是否被预渲染或者所选择的链接的加载时间中的至少一个。该处理器可以进一步 被配置为在搜索结果页面中嵌入实验标识符,该实验标识符对应于用来识别至少一个预渲 染候选的特定方法,以及使用与搜索结果页面相关联的一个或多个重定向操作来识别与选 择操作以及该至少一个预渲染候选是否被选择相关联的实验标识符。

【专利附图】

【附图说明】
[0011]图1是描绘依据本公开各方面的提供预渲染的搜索系统的示例的系统图。
[0012] 图2是依据本公开各方面的使用预渲染指令的搜索结果页面的示例的图示。
[0013] 图3是描绘依据本公开各方面的用于预渲染网页的方法的示例的流程图。
[0014] 图4是描绘依据本公开各方面的用于指示指向预渲染的导航事件的方法的示例 的流程图。
[0015] 图5是描绘依据本公开各方面的用于在预渲染操作期间管理web闪现统计的方法 的示例的流程图。
[0016] 图6是描绘依据本公开各方面的用于管理预渲染操作的方法的示例的流程图。 [0017] 图7是描绘依据本公开各方面的用于配置预渲染操作的方法的示例的流程图。
[0018] 图8是描绘依据本公开各方面的用于对嵌入在搜索结果页面内的预渲染指令进 行处理的方法的示例的流程图。
[0019] 图9是描绘依据本公开各方面的用于将预渲染指令嵌入在搜索结果页面内的方 法的示例的流程图。
[0020] 图10是描绘依据本公开各方面的用于获得预渲染度量的方法的示例的流程图。

【具体实施方式】
[0021] 在参考以下优选实施例的描述和附图加以考虑时将会意识到本公开的方面、特征 和优势。以下描述并不对本公开进行限制;相反,其范围由所附权利要求和等同物限定。
[0022] 虽然依据示例实施例的某些过程在附图中被示为以线性方式发生,但是除非在这 里明确指出,否则并非要求如此。不同过程可以以不同顺序执行或者同时执行。
[0023] 本公开描述了用于为搜索结果页面提供预渲染指令的系统和方法。本公开的各 方面通过在用户选择导航事件之前对与该事件相关联的内容进行预渲染而使得用户选择 导航事件(例如,在搜索结果的超链接上进行点击)和关联于该导航事件的内容的显示之 间的延迟最小化。例如,该方法和系统可以在web浏览期间预测可能的下一个统一资源定 位符,以在用户选择相对应链接之前先发制人地从网络请求内容,因此使得用户在选择网 页上的超链接时的等待时间最小化。对用于执行预渲染操作、配置预渲染操作以及管理预 渲染操作的各种方法进行了描述。出于本申请的目的,术语"预渲染" 一般地是指请求加载 web地址的内容所必需的资源(例如,任意可执行代码、脚本语言、文件和/或交互式对象) 以及在web浏览器实例中加载内容的动作。预渲染包括渲染页面的处理,包括解释脚本、布 局页面并且在非可见的浏览器实例中对其进行渲染。
[0024] 当用户使用互联网搜索引擎在浏览器中执行搜索查询时,该互联网搜索引擎可以 利用预渲染指令对响应于搜索查询而提供的搜索结果中的一个或多个进行标记。这些预渲 染指令可以嵌入在网页自身之内(例如,经由页面源中的超文本标记语言(HTML)标签),或 者以另一种方式对浏览器进行知识,诸如经由异步JAVASCRIPT (AJAX)。虽然关于web浏览 器对各个示例性实施例进行了讨论,但是术语浏览器可以宽泛地被理解为还包括使用互联 网地址取得内容的任意应用。例如,浏览器可以是在智能电话上执行的应用、在膝上型电脑 或台式计算机上执行的显示互联网搜索引擎的web浏览器、集成在web浏览器之内的搜索 工具栏、包括在计算机操作系统中的搜索引用等等。
[0025] 诸如互联网搜索引擎之类的高业务量站点可能由于预渲染而具有独有的问题。例 如,如果搜索引擎将流行搜索查询的搜索结果错误标记为良好的预渲染候选,但是用户并 未频繁选择该搜索结果,则托管该错误标记的搜索结果的web服务器将在没有附加页面观 看的情况下体验到附加业务。这会导致托管页面的带宽浪费,以及用户计算机的系统资源 浪费,因为被预渲染的页面通过网络被下载并且在隐藏的浏览器实例中执行。因此,期望监 视系统度量以在改进用于与预渲染操作相关联的链路选择时。系统和方法的各方面可以使 用出于改进预渲染体验的目的而选择加入志愿数据采集的客户端所提供的数据来提供这 些度量监视功能。
[0026] 图1给出了依据本公开各方面的计算机系统的示意图,其描绘了能够单独使用或 者以联网配置使用的各种计算设备。例如,该图图示了计算机网络100,其具有经由网络 106进行通信的客户端设备102和服务器104。客户端设备102允许用户提交搜索查询以 使用该搜索查询发起搜索操作。服务器104接收该搜索查询并且使用该搜索查询执行搜索 操作。服务器104还可以将一个或多个预渲染指令与响应于该搜索查询而提供给用户的搜 索结果相关联。
[0027] 客户端设备102可以是本领域已知的计算设备。例如,客户端设备102可以是膝 上型计算机、台式计算机、上网本、机架安装服务器、智能电话、蜂窝电话、或者包含用于执 行指令的可编程硬件或软件的任意其它设备。计算设备102可以包括处理器108、存储器 11以及通常出现在通用计算机中的其它组件。存储器110可以存储可由处理器108访问的 指令112和数据114。处理器108可以执行指令112并且访问数据114以控制客户端设备 102的操作。
[0028] 处理器108可以是任意适当的处理器,诸如各种可商业获得的通用处理器。替选 地,处理器108可以是专用控制器,诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。
[0029] 存储器110可以是可操作地存储可由处理器108访问的信息的任意类型的有形存 储器,包括计算机可读介质或者存储可以借助于电子设备进行读取的数据的其它介质,诸 如硬盘、存储卡、只读存储器(ROM)、随机存取存储器(RAM)、数字多功能盘(DVD)或其它光 盘、以及其它可写入和只读存储器。该系统和方法可以包括以上的不同组合,因此指令和数 据的不同部分存储在不同类型的媒体上。
[0030] 虽然图1在功能上将处理器108和存储器110图示为每个分别处于单个块内,但 是应当理解的是,处理器108和存储器110实际上可以包括可以或可以不存储在相同物理 外壳内的多个处理器和存储器。因此,对处理器、计算机或存储器的引用将被理解为包括对 可以或可以不并行操作的处理器、计算机或存储器的集合的引用。
[0031] 指令112可以是要由处理器108直接(诸如机器代码)或间接(诸如脚本)执行 的任意指令集合。例如,指令112可以作为计算机代码存储在非瞬时计算机可读介质上。就 此而言,术语"指令"和"程序"可以在这里互换地使用。指令112可以以目标代码格式存 储以便由处理器108直接处理,或者以包括按需进行解释或者提前编译的脚本或独立源代 码模块的集合在内的任意其它计算机语言进行存储。指令的功能、方法和例程在下文中更 为详细地进行解释(见图2-10)。
[0032] 为了促成客户端设备102的操作,指令112可以包括浏览器116。浏览器116提 供客户端设备102可以通过其执行搜索操作并且接收搜索结果的接口,例如渲染互联网搜 索引擎着陆页面的web浏览器。浏览器116可以用来渲染响应于web搜索结果页面118中 的搜索查询而接收到的搜索结果。浏览器116还可以进行操作以对预渲染页面122进行预 渲染而允许在用户选择与预渲染页面122相关联的导航操作的情况下进行即刻导航。浏览 器116还可以跟踪与浏览器116所执行的显示和导航操作相关联的度量120。如以上所描 述的,浏览器116所采集的任意度量120以匿名方式进行保存,具有适当保护以维护用户的 隐私和匿名性。如以上所描述的,浏览器116可以是适于接收搜索结果并且向用户显示所 述搜索结果的任意应用。浏览器116可以在各种实例中保存多个内容集合,诸如浏览器标 签。可以通过在用户无法看到的浏览器实例中渲染预渲染页面122,并且在选择了与预渲染 页面122相关联的导航操作时将不可见的浏览器实例交换到可见的浏览器实例中,来执行 预渲染。
[0033] 数据114可以由处理器108依据指令进行检索、存储或修改。例如,虽然该架构并 不被任何特定数据结构限制,但是数据可以存储在计算机寄存器、作为具有多个不同字段 和记录的表的关系数据库、可扩展标记语言(XML)文档或平面文件中。数据还可以以任意 计算机可读格式进行格式化,诸如二进制值或统一码但并不限于此。数据可以包括足以识 别出相关信息的任意信息,诸如编号、描述文本、属性代码、对相同存储器中或不同存储器 (包括其它网络位置)的其它区域中存储的数据的引用或者被函数用来计算相关数据的信 息。
[0034] 数据114可以存储web搜索结果页面118、度量120以及如以上所描述的预渲染页 面122。Web搜索结果页面118和预渲染页面122可以作为渲染页面存储在与浏览器116 相关联的浏览器实例中。度量120可以在本地存储并定期传送至服务器104,或者直接在服 务器104上计算和存储。
[0035] 服务器104可以用来使用客户端设备102提供的搜索查询来执行搜索操作。服务 器104还可以将一个或多个预渲染标签嵌入在提供给客户端设备102的搜索结果网页中。 服务器104可以通过多种因素在提供给客户端设备102的搜索结果内识别候选链接。例如, 服务器104可以将搜索结果集合中最为相关的链接识别为用于预渲染的最佳候选。服务器 104还可以用来采集度量,诸如客户端102提供的度量120,以便改进预渲染操作。例如,月艮 务器104可以接收有关用户由于预渲染操作而节约的时间量、预渲染操作的命中和错失率 (例如,被预渲染的搜索结果有多频繁地被从搜索结果列表中进行选择)或者各种其它特 征的度量。
[0036] 服务器104可以类似于客户端设备102进行配置,具有耦合至存储器126的处理 器124。存储器126可以包括指令128的集合以及数据130以促成服务器104的操作。指 令128可以包括搜索引擎132和预渲染应用134。搜索引擎132进行操作而响应于搜索查 询向客户端102提供搜索结果。例如,搜索引擎132可以是互联网搜索引擎。预渲染应用 134进行操作以从搜索引擎132所生成的搜索结果132中识别作为预渲染的候选的搜索结 果。预渲染应用134包括预渲染指令,其利用搜索结果136来创建具有嵌入指令的搜索结 果的集合138。搜索结果136和具有嵌入指令的搜索结果138可以存储在数据130中。当 被客户端设备102接收时,客户端设备102对嵌入指令进行处理以识别哪些搜索结果要预 渲染。
[0037] 预渲染应用134可以通过将一个或多个HTML标签添加到与预渲染候选搜索结果 相关联的链接而将指令嵌入在搜索结果136内。例如,指向示例网站example, com的链接 的HTML可以响应于预渲染应用134检测到与维基百科相关联的搜索结果是预渲染的良好 候选而被预渲染应用 134 从"〈a href = 〃http://www. example. com〃>example〈/a>"修改为 "〈link rel = "prerender"href = "http://www. example. com"/>〈a href = http://www. example. com>example〈/a>,'。
[0038] 客户端设备102和服务器104可以每一个在网络的单独节点处并且可以进行操作 以直接或间接与网络106的其它节点进行通信。例如,客户端设备102可以包括可操作地 经由网络106与服务器104进行通信的移动电话。
[0039] 网络106以及客户端设备102和服务器104之间的中间节点可以包括各种配置 并且可以使用各种协议,包括互联网、万维网、企业内部网、虚拟私人网络、本地以太网、使 用专属于一个或多个公司的通信协议的私有网络、蜂窝和无线网络(例如,Wi-Fi)、即时消 息、超文本传输协议(HTTP)和简单邮件传输协议(SMTP)、以及上述的各种组合。应当意识 到的是,典型的系统可以包括大量的所连接的计算机。例如,服务器104的功能可以跨多个 节点进行分布,其中单独节点托管搜索引擎132和预渲染应用134。
[0040] 虽然如以上所提到的,在传送或接收信息时获得某些优势,但是该系统和方法的 其它方面并不限于任何特定的信息传输方式。例如,在一些方面,信息可以经由诸如光盘或 便携式驱动器之类的介质进行发送。在其它方面,信息可以以非电子格式进行传送并且被 手工输入到系统之中。
[0041] 图2是依据本公开各方面的使用预渲染指令的搜索结果页面200的示例的图示。 所描绘的搜索结果页面200示出了响应于搜索查询"测试搜索查询"所接收的搜索结果的 集合。虽然描绘了简单的文本查询,但是搜索可以经由任意适当的搜索查询来执行,包括基 于图像、视频或者任意其它源的搜索。搜索结果页面200包括一个或多个搜索结果202。每 个搜索结果202与HTML数据204相关联。所显示的搜索结果202的HTML数据204指示搜 索结果202被嵌入有"link rel = 'prerender' "项,这指示与HTML数据204相关联的搜索 结果202应当被显示搜索结果200的浏览器预渲染。
[0042] 图3是描绘依据本公开各方面的用于预渲染网页的示例方法300的流程图。方法 300的各方面进行操作以通过在用户导航至网络内容之前请求所述网络内容而使得网络内 容的加载时间最小化。方法300可以由诸如客户端102的计算设备执行以通过预渲染被识 别为用户的可能导航目标的网页而消除用户web浏览体验中的延迟。例如,方法300可以 由浏览器116的元件执行。虽然关于客户端102对方法300的各方面进行了描述,但是方 法300也可以由服务器104或者具有被设计为接受指令的硬件和/或软件的任意设备执 行。如所描述的方法300的示例方面涉及预渲染与单个导航事件相关联的单个页面,但是 方法300也可以宽泛地应用于预渲染与一个或多个导航事件相关联的多个页面,诸如按顺 序预渲染多个页面或者以多个并行预渲染实例预渲染多个页面。
[0043] 在阶段302,客户端102确定web浏览器内的下一个导航事件。下一个导航事件可 以经由服务器104嵌入在搜索结果页面内的预渲染指令而被识别。例如,搜索引擎可以将 标签嵌入在一组搜索结果内以指示与最为相关的结果相关联的特定链接应当被web浏览 器预渲染。用于在网页内嵌入预渲染标签的方法在下文中进行描述(参见图4和8-10)。
[0044] 在阶段304,客户端102请求与在阶段302所识别的导航事件相关联的内容。该请 求可以包括超文本传输协议(HTTP) GET请求、文件传输协议(FTP)请求、或者本领域已知的 任意其它网络数据访问请求。web内容的第一集合可以响应于HTTP GET请求而提供,这然 后可以导致依据web内容的第一集合的附加 HTTP GET请求。例如,HTTP GET请求会导致基 本网页被发送至web浏览器,其可以触发其它页面加载操作,诸如附加 GET请求。该基本网 页可以具有多个嵌入图像,它们然后使用针对每个图像的HTTP GET请求被取得并渲染。如 所描述的预渲染过程可以请求包括相关联的脚本的整个网页,并且然后执行那些脚本。响 应于该请求,与导航事件相关联的web内容被发送至web浏览器。例如,服务器104可以向 web浏览器发送内容。返回搜索引擎示例,在接收到具有所嵌入的预渲染标签的网页时,客 户端102请求并渲染与关联于如搜索引擎所识别的隐藏浏览器实例中的顶端搜索结果的 URL相关联的网页。
[0045] 在阶段306,客户端102渲染与在阶段302所确定的导航事件相关联的内容。该内 容可以在对用户隐藏的web浏览器的替选实例中进行渲染。例如,该内容可以由替选过程 来渲染或者在隐藏的web浏览器标签中进行渲染。在一些方面,客户端102可以渲染与多 个导航事件相关联的内容。例如,导航事件可以与优先级值相关联,具有与更可能的导航事 件相关联的更高或更低的值。这样,客户端102可以根据客户端102的能力而渲染前"η" 个最为可能的事件(参见图7)。
[0046] 在一些方面,所渲染的内容可以包括重定向操作。重定向操作的示例是在加载例 如www. a. com的第一页面的动作时促使浏览器加载诸如www. b. com的第二页面。重定向可 以响应于HTML标签、JAVASCRIPT导航命令等而发生。在预渲染页面请求重定向操作的情 况下,所述重定向操作也将在替选实例中发生。
[0047] 在一些方面,第一重定向操作可以导致后续的重定向。例如,www. a. com可以导致 www. b. com,后者会导致www. c. com。该系统和方法的各方面可以考虑该事实,诸如通过存储 重定向操作的历史并且响应于第一页面被识别为预渲染而对一个系列中的最后页面进行 预渲染。在一些方面,通过在目的地结果页面(即,处于重定向操作结尾处的页面)已知时 不预渲染中间页面,而是仅预渲染该系列中的最终页面,方法300可以短路重定向操作。
[0048] 在阶段308,客户端102可以确定用户是否已经在特定时间段内选择了阶段302所 识别的链接。例如,方法300可以等待10秒、20秒、30秒、1分钟、5分钟或者任意其它时间 帧。在一些方面,该时间帧可以在与web浏览器相关联的选项菜单中进行配置。该时间帧 也可以由服务器104指定。例如,服务器104可以将超时值嵌入在预渲染标签内,其指示与 该标签相关联的内容在被丢弃之前应当被保存的时间长度。如果用户已经在该时间段内选 择了该链接,则方法300前进至阶段312。否则,方法300前进至阶段310。
[0049] 在阶段310,客户端102丢弃预渲染内容。该预渲染内容被允许以这种方式期满 以便释放与预渲染操作相关联的系统资源并且防止用户被渲染陈旧数据。在一些方面,可 以针对不同类型的数据指定不同的期满时段。例如,诸如新闻文章、股票报价、聚合馈送源 等的可能快速变化的数据更可能很快过时,并且可能与较短的期满计时器相关联,诸如10 秒、20秒或1分钟。诸如参考文章、归档、技术统计等的不太可能发生变化的数据可能与较 长的期满计时器相关联,诸如1小时、6小时、24小时、一周等。在一些方面,等待时间基于 页面类型。例如,如果用户正在观看很长的新闻文章,可以在预渲染该文章的下一页时指定 较长的等待时间以在选择下一页之前为用户提供阅读该文章的当前页面的时间。在一些方 面,等待时间由嵌入在页面内的存活时间(time-to-live,TTL)参数确定。在一些方面,等 待时间在浏览器内进行硬编码。方法300然后在预渲染内容被丢弃之后结束,虽然在一些 方面,方法300可以在用户浏览web内容时被无限重复。
[0050] 在阶段312,客户端102响应于用户选择阶段302所确定的导航事件而将包含预渲 染内容的替选实例交换到当前用户实例中。以这种方式,客户端102即刻显示与该导航事 件相关联的内容而没有从主机服务器请求并接收数据时的延迟。返回至搜索结果示例,如 果用户选择最为相关的结果,则相关联页面已经在替选实例中进行了加载并且因此只要用 户点击该链接就即刻可用。在一些方面,用户可能在预渲染操作完成之前选择导航事件。在 这样的情况下,部分加载的页面将被交换到当前用户实例中。该部分加载的页面然后将继 续在当前用户实例中正常加载。方法300然后在使得预渲染内容可被用户使用之后结束。
[0051] 图4是描绘用于指示指向预渲染的导航事件的示例方法400的流程图。在一些方 面,诸如服务器104的托管内容的服务器能够为web浏览器指示指向预渲染的导航事件。允 许服务器指定一个或多个预渲染的链接出于各种原因而言可能是最优的,诸如是因为服务 器具有有关哪个导航事件最为可能的最佳信息,或者是因为服务器主诸如为了负载平衡操 作而希望对与特定托管的链接相关联的带宽进行管理。这样,服务器104可以在托管的页 面内嵌入一个或多个预渲染标签,对要在其中渲染内容的客户端102的预渲染模块进行指 /_J、1 〇
[0052] 在阶段402,服务器104识别在所托管的网页内的一个或多个链接。例如,服务器 104可以响应于来自客户端102的查询而生成网站列表。每个搜索结果可以与要响应于该 查询提供的页面上的特定链接相关联。
[0053] 在阶段404,服务器104选择要预渲染的一个或多个链接,它们选自在阶段402识 别的链接。要预渲染的链接可以出于各种目的通过各种方法进行选择,诸如通过检查用户 导航历史、汇总导航历史、最相关链接等。在一些方面,该链接由搜索引擎分析响应于特定 查询最频繁被点击的链接来选择。例如,搜索引擎可以收集指示哪些链接响应于特定查询 而被点击的"点进"数据,并且基于特定链接被选择的频率而选择要预渲染的一个或多个链 接。继续搜索引擎示例,服务器104可能将顶端搜索结果或者前"η"个搜索结果识别为要 预渲染的最优链接。在一些方面,服务器104可以进一步识别要预渲染的链接的排名,其中 要预渲染的最优链接排名第1,下一个最优链接排名第2,等等。服务器104还可以识别每 个链接将被选择的可能性,而不是排名。例如,服务器104可以指示特定链接有50%的可 能性、25%的可能性或者80%的可能性被用户选择。客户端所执行的预渲染操作可以选择 预渲染与阈值可能性水平相关联的链接,该阈值可能性水平诸如至少50%的可能性、至少 80%的可能性或者任意其它阈值。
[0054] 在阶段406,服务器104嵌入具有在阶段404识别的一个或多个链接的一个或多个 预渲染标签。例如,服务器104可以包括用于识别要预渲染的一个或多个最优链接的超文 本标记语言(HTML)标签。如以上所描述的,该预渲染标签还可以包括排名值以及指定保持 预渲染的时间的TTL数值。继续搜索引擎示例,服务器104可以连同通过搜索结果的相关 性对结果的预渲染顺序进行排名一起识别具有预渲染标签的每个搜索结果。
[0055] 在阶段408,具有嵌入的预渲染标签的页面被发送至请求该页面的客户端。方法 400然后在发送该页面之后结束。
[0056] 图5是描绘依据本公开各方面的用于在预渲染操作期间管理web闪现统计的示例 方法500的流程图。网站经常对什么内容被观看、哪些页面被访问、那些页面被访问的顺序 以及在每个页面上花费了多少时间进行跟踪。对这样的数据的这些捕捉和分析宽泛地被称 作"网站分析"。这些统计提供了可以被站点运营者用于各种用途的数据。例如,对于该数 据的一个这样的使用是计算连同内容显示的广告的评级。然而,在一些情况下,用户可以不 选择与预渲染的内容相关联的导航事件,因此可能与该数据的收集相干扰。例如,经由给定 页面被发送至用户的次数来跟踪用户闪现的传统模型可能不再提供准确的结果,因为用户 可能没有在每次发送时都观看该内容。这样,诸如服务器104的服务器可以提供一种将预 渲染的内容纳入考虑之中的用于对闪现进行准确跟踪的方法。以下对一种这样的方法进行 描述。虽然该方法的具体示例可以关于管理广告内容的闪现统计而提供,但是应当意识到 的是,该方法的各方面可宽泛地应用以确保对响应于预渲染请求而派发的页面进行准确的 网站分析。
[0057] 在阶段502,服务器104从诸如客户端102的计算设备接收预渲染请求。在一些方 面,该预渲染请求可以使用脚本应用编程接口(API)来识别,诸如由客户端102经由随内容 请求一起传送的JAVASCRIPT API指示该内容请求是对于预渲染操作。该预渲染请求还可以 伴随有经修改的HTTP报头,其指示该请求是预渲染请求。在一些方面,服务器104被配置 为从客户端102接收如API所提供的事件通知,诸如通过使用在服务器104上执行的应用 注册事件通知。在一些方面,服务器104可以选择不响应于预渲染请求发送内容,诸如在服 务器带宽受限的情况下,或者由于其它原因而不希望允许预渲染。以这种方式提供预渲染 请求的通知还允许服务器104 "选择退出"对预渲染请求的处理。例如,服务器104可能是 带宽受限的并且因此需要关注于托管非预渲染的内容。在一些方面,服务器104还可以通 过包括指示如此的HTML元标签,或者包括托管在该服务器上的"rotots. txt"文件中的条 目而选择退出以防止由搜索引擎对诸如搜索结果列表中所指示的内容进行预渲染。
[0058] 在阶段504,服务器104可以发送其中某些内容经过编校的部分网页。例如,服务 器104可以不响应于预渲染请求而提供与广告内容相关联的图像,因为在许多情况下,广 告闪现基于广告图像被发送的次数来确定。类似方法可以应用于以诸如经由脚本或可执行 内容的其它方式所提供的广告。作为示例,服务器104可能通过提供基本网页而对预渲染 请求进行响应。该基本网页可以导致客户端104针对该基本网页所识别的内容发起一个或 多个附加的HTTP GET请求。服务器104可以选择不响应于针对基本网页内所识别的广告图 像的HTTP GET请求而发送内容。
[0059] 在一些方面,经编校版本的内容可以包括与经编校的图像、脚本等相关联的特殊 HTTP错误代码,其向进行接收的计算设备指示某些内容已经被编校。以这种方式,客户端 102可以被通知某些内容已经被编校并且将在随后提供,而不是该内容不可获得。这样,客 户端102可以在该内容在访问时进行加载的同时选择利用特定图形或临时显示来指示经 编校的内容,或者经编校的内容可以出现为空白。
[0060] 在一些情况下,客户端102可能并不了解如何适当显示经编校的内容,在这样的 情况下,客户端102可以中止预渲染操作。此外,当用户访问内容时,客户端102可以通知 服务器104预渲染页面已经被观看。作为响应,服务器104可以向客户端102发送经编校 的内容。
[0061] 在阶段506,服务器104接收该内容的预渲染被用户观看的确认。如上文,服务器 104可以经由通过web浏览器所提供的API而被通知该内容的观看。例如,脚本可以向服 务器104通信事件通知。如果服务器104注册了这样的事件通知,则其可以采取适当动作, 诸如向客户端102发送经编校的内容。通过向服务器104通知预渲染内容被观看,服务器 104获知发送任何经编校的内容并且更新与任意广告相关联的闪现统计。
[0062] 在阶段508,服务器104发送在阶段504被编校的内容。该内容现在可以被发送是 因为服务器104已经确保用户已经访问了该内容。例如,服务器104可以发送与广告相关 联的图像、脚本代码等。
[0063] 在阶段510,服务器104更新与如在阶段508所发送的内容相关联的闪现统计。在 一些方面,阶段508和510与托管图像/发送广告的动作自动更新页面闪现统计同时发生。 以这种方式,服务器104保持了网站分析数据的准确报告,同时还允许客户端102执行预渲 染操作。
[0064] 图6是描绘依据本公开各方面的用于管理预渲染操作的示例方法600的流程图。 为了提供最优的预渲染体验,客户端102能够考虑可以影响浏览体验的不同因素。例如, web页面通常使用被称作cookie的小文件来经由web浏览器提供各种页面服务。例如,新 闻站点可以采用跟踪cookie来允许用户在并不在页面上注册的情况下每天访问一篇新闻 文章。与该新闻站点相关联的预渲染操作因此能够与用户的浏览体验形成干扰,因为用户 可能对其并不想阅读的文章进行预渲染,由此用光了页面上其还没有观看的每天一篇的免 费文章。
[0065] 一些网页已经嵌入了只要页面加载就开始播放的音频或视频内容。在一些实施方 式中,如这里所描述的预渲染方法和系统能够允许这样的内容在用户导航至该内容之前开 始播放,因此当用户开始观看页面时,该内容已经在播放。一些网页可以包括可能不适于预 渲染的附加内容,诸如弹出页面、脚本程序、下载、认证提示、翻译栏等。这样,预渲染模块 210可以采用诸如方法600的方法对这些特殊情形进行管理。
[0066] 在阶段602,客户端102从诸如服务器104的服务器请求并接收预渲染内容。如以 上所描述的,该请求可以在API调用中呈现或者伴随有API调用,其向服务器指示该请求是 预渲染请求。基于从服务器所接收的响应预渲染页面。在预渲染过程期间,客户端102对 如以下所描述的若干种特定情形进行监视。虽然以特定顺序呈现,但是这些情形能够以任 意顺序进行,例如在体验到cookie状态变化之前识别所嵌入的视频。
[0067] 在阶段604,客户端102确定所请求的预渲染内容是否包括cookie状态变化或另 一种特殊情形。例如,如果用户正在访问银行网页,如果账户页面被预渲染并且然后用户登 出其账户,则选择预渲染链接就会像用户仍然登录那样进行不正确的报告。这样,只要用户 已经登出,预渲染就将是无效的。客户端102因此对与预渲染内容相关联的任意cookie的 状态进行监视并且可以采取适当动作。适当动作可以包括尝试适当传播cookie状态变化, 忽略cookie状态变化并继续预渲染操作,或者放弃并中止预渲染操作。客户端102进一步 确定预渲染内容是否包括特殊情形,诸如弹出页面、脚本应用、下载、认证菜单或翻译栏。如 果cookie状态已经发生了变化或者预渲染页面包括特殊情形,则该方法前进至阶段608。 否则,方法600继续至阶段606。
[0068] 在阶段608,客户端102可以中止预渲染操作。客户端102可能由于在阶段604所 识别的cookie状态变化或特殊情况使得与预渲染页面相关联的数据陈旧或者以其它方式 无法被用户观看而中止预渲染操作。在一些方面,客户端102可以忽略cookie状态变化。 方法600然后结束。
[0069] 作为一种管理cookie数据的替选方法,客户端102可以对与预渲染的内容相关联 的任意cookie状态变化进行跟踪,并且在预渲染的内容被用户访问时应用该状态变化。在 一些方面中,客户端102还可以监视cookie状态变化中的冲突,并且在冲突的情形下中止 预渲染操作。例如,可以在预渲染操作完成之后发生cookie状态变化,因此导致冲突。在 这样的情况下,页面的预渲染版本可以被丢弃以避免向用户呈现不正确的页面数据。
[0070] 在阶段606,如果预渲染内容不包含特殊情形并且还没有cookie状态变化,则客 户端102确定页面上是否有诸如音频或视频之类的多媒体内容。例如,该页面可以包括利 用ADOBE FLASH、HTML5媒体或另一种类型的嵌入媒体进行编程的嵌入视频。在这样的情况 下,可能期望暂停多媒体直至用户实际导航至该页面,因此节约带宽并且确保用户可以观 看到整个多媒体文件。如果页面包含所嵌入的多媒体,则方法600前进至阶段612。否则, 方法600前进至阶段610。
[0071] 在阶段610,客户端102已经确定了内容不包含多媒体内容、cookie状态变化或 特殊情形,并且因此客户端102对页面进行预渲染。该预渲染过程可以通过从服务器104 接收页面并且在对用户隐藏的应用实例中渲染该页面。渲染页面一般地涉及加载从服务器 104接收的所有数据,并且执行其中所包含的任意指令,因为他们将在观看非隐藏应用实例 中的页面时以其它方式被执行。
[0072] 在阶段612,客户端102已经确定了内容包含多媒体内容。因此,客户端102对该 页面中多媒体内容以外的内容进行预渲染,并且可以暂停多媒体内容的播放,或者推迟与 该内容相关联的插件的实例化。例如,客户端102可以在预渲染其余页面之后暂停所嵌入 的音频或视频文件,或者FLASH视频可能在向用户显示预渲染内容之前不会执行。
[0073] 在阶段614,客户端102确定用户是否已经访问了预渲染的内容。如果用户访问了 预渲染的内容,则该内容如以上所描述的那样进行显示,并且方法600前进至阶段616。如 果用户没有访问预渲染的内容,例如,如果如以上关于图3所描述的预渲染计时器期满,则 方法600结束。
[0074] 在阶段616,客户端102向服务器104发送用户访问了预渲染的通知。如以上所描 述的,该通知可以使用脚本API来发送,该服务器被配置为从该API接收事件通知。以这种 方式提供通知允许服务器对网站闪现进行管理(参见图5)。
[0075] 图7是描绘依据本公开各方面的用于配置预渲染操作的示例方法700的流程图。 不同计算设备可以拥有不同能力,诸如网络带宽、系统存储器和处理器速度。这样,各种设 备可以能够支持不同的预渲染操作。具有更多能力的设备可以能够支持多个预渲染操作, 或者支持更为复杂的页面的预渲染。这样,方法700基于系统的能力而提供了对这些预渲 染操作的配置。
[0076] 在阶段702,客户端102进行系统能力的测量。例如,客户端102可以针对自由系 统存储器的数量而查询操作系统,客户端102可以从基本输入-输出系统(BIOS)请求处理 器速度,或者客户端102可以进行网络速度测试以确定自由带宽。
[0077] 在阶段704,客户端102基于在阶段702所确定的能力而确定最大数量的"η"个 预渲染。在一些方面,客户端102可以确定一组系统要求以支持单个预渲染实例。例如,单 个预渲染实例可以要求百分之十的处理器利用,16Mb的系统存储器,至少10Kb/秒的网络 带宽,等等。该系统要求还可以包括与不同系统组件相关联的多种能力,诸如最低存储器要 求、处理器利用和网络带宽中的每一个。这些系统要求可以通过测量在客户端102上执行 的单个预渲染实例的系统利用而得以确定。
[0078] 例如,客户端102可以确定每个预渲染操作在预渲染的同时可能需要系统处理 器。这样的处理器使用可能是"突发性的",因为在页面首次加载时需要整个处理器,随后处 理器需求减少。在这样的情况下,客户端102可以为预渲染实例分配较低的处理器优先级 以确保页面的预渲染并影响用户的浏览体验。在一些方面,客户端102可以对系统存储器 进行监视以确定预渲染实例的数量。客户端102可以确定预渲染实例所使用的存储器量并 且然后将该量与总体可用的存储器容量进行比较。在一些方面,客户端102可以为预渲染 保留特定量的系统存储器,并且生成预渲染实例直至所保留的存储器被填充。在一些方面, 确定系统的最大网络带宽,并且基于可用带宽的百分比生成预渲染实例。在一些方面,客户 端102可以从远程服务器请求带宽测量以识别本地的最大带宽,并且使用该测量来确定预 渲染设置。
[0079] 在阶段706,客户端102被配置为同时执行如阶段704确定的系统能力所能够支持 的那么多的同时预渲染。在一些情况下,预渲染的数量可以由用户诸如在选项菜单中进行 配置。
[0080] 图8是描绘依据本公开各方面的用于对搜索结果页面中嵌入的预渲染指令进行 处理的方法800的示例的流程图。如以上所描述的,服务器104可以将预渲染指令嵌入搜 索结果页面内以便由客户端102执行。客户端102可以识别搜索结果页面中所嵌入的预渲 染指令以选择用于预渲染的链接。
[0081] 在阶段802,搜索查询被发送至服务器104。如以上所描述的,搜索查询可以是文 本串、文件、图像、视频、或者是具有接收到搜索结果的预期的任意其它识别内容的方法。
[0082] 在阶段804,接收搜索结果。该搜索结果可以对阶段802所发送的搜索查询进行响 应。诸如以上所描述的,该搜索结果可以作为按照相关性排序的一系列文本链接而渲染给 用户(参见图2)。
[0083] 在阶段806,识别预渲染指令以便与在阶段804所接收的搜索结果相关联。例如, 预渲染指令可以包括在与每个结果相关联的HTML标签中,或者预渲染指令可以通过其它 手段被传送至客户端102,诸如通过AJAX或其它消息协议。例如,预渲染标签可以由客户端 基于通过消息协议所接收的预渲染指令动态地插入到搜索结果页面上的HTML标签中。预 渲染指令可以将多个链接识别为预渲染候选。在识别多个预渲染候选的情况下,预渲染指 令可以进一步识别预渲染候选的排名,使得具有最高排名的结果得以被客户端预渲染。客 户端102可以基于预渲染指令以及客户端的可用系统资源(参见图7)而识别出用于预渲 染的特定数量的"η"个链接。在阶段808,对与阶段806所识别的预渲染指令相关联的页 面进行预渲染。客户端102可以在确定是否执行预渲染时了解到其它数据。例如,客户端 102可以了解到用户已经选择了链接并且然后按压了 web浏览器中的"返回"按钮。这样, 用户就将不可能选择其刚刚离开的相同结果。因此,客户端102可以替代地对替代客户端 102刚刚离开的搜索结果的下一个最为可能的预渲染候选搜索结果进行预渲染。
[0084] 在阶段810,对搜索结果中的一个执行选择操作。该选择操作并非必然需要对客 户端102所预渲染的链接进行。例如,用户可以选择预渲染指令所识别的链接以外的链接。 用户可能出于各种原因而希望选择非预渲染的链接,因为响应于搜索查询而提供的结果可 能涉及各种主题,并且用户可能并非始终都希望观看最为普遍选择的搜索结果。
[0085] 在阶段812,存储与搜索结果的选择相关的度量。这些度量允许浏览器对识别预渲 染操作的准确性的数据进行跟踪。例如,在最优情况下,用户始终选择与预渲染指令相关联 的链接。通过收集与用户是否选择了预渲染的链接相关联的度量,系统可以确定预渲染的 标准在它们使得预渲染的内容的选择最大化同时使得其中用户不可能选择预渲染内容的 预渲染最小化方面是否适宜。错误预测的预渲染操作可以导致内容被请求但是却并未被访 问。这导致带宽和处理功率的浪费。然而,为了用户获益最大化并且提供一致的用户体验, 可以在与实际同样多的搜索结果上使用预渲染。所存储的度量可以被传送至服务器104以 便进行分析和处理,或者该量度可以存储在本地客户端上并定期上传。以这种方式存储的 度量数据被匿名化以便在上传之前去除个人用户数据。以下进一步对用于捕捉与预渲染操 作相关联的度量的方法进行描述(参见图10)。
[0086] 图9是描绘依据本公开各方面的用于在搜索结果页面内嵌入预渲染指令的方法 900的示例的流程图。方法900进行操作以将一个或多个预渲染指令集合包括在诸如服务 器104上的搜索引擎所提供的搜索结果集合之中。使用各种因素从搜索结果集合中识别可 能被用户选择的搜索结果,并且使用预渲染指令将其指示为可能的预渲染候选。这些搜索 结果可以响应于从客户端接收的搜索查询而连同预渲染指令一起被提供至客户端。
[0087] 在阶段902,接收搜索查询。该搜索查询可以包括足以创立搜索操作的任意标准, 诸如文本串、图像或视频。搜索引擎可以识别与该搜索查询相关的一个或多个结果。这些 结果可以包括指向包含相关内容的页面的超链接、所链接页面的内容的简要描述、或者响 应于搜索查询通常提供的任意其它数据。
[0088] 在阶段904,在搜索结果中确定预渲染候选。预渲染候选可以基于每个结果与搜索 查询的相关度(例如,更为相关的结果更可能成为预渲染候选)、基于用户通常将响应于查 询选择哪个链接的统计数据或者经由其它标准来确定。搜索引擎还可以基于web分析数据 将链接识别为预渲染候选,所述web分析数据诸如去往搜索结果的业务量、搜索结果的主 机是否已经选择退出预渲染或者与搜索结果相关联的内容量(例如,搜索结果页面的文件 大小或者存储在搜索结果页面和所链接内容上的数据量)。搜索结果所经历的业务量可以 基于当搜索引擎提供该搜索结果时选择该搜索结果的用户的数量来确定。在一些方面,月艮 务器可以了解到客户端的网络连接速度,并且基于客户端连接速度指示要预渲染的适当链 接数量。
[0089] 预渲染候选可以使用一个或多个因素或信号来确定。这些可以包括但并不限于与 搜索查询的相关性、在作为预渲染候选被包括时被用户选择的频率、与搜索结果相关联的 业务量、用户的位置、用户的连接速度、搜索结果是否已经选择退出预渲染过程、以及与搜 索结果相关联的网页的大小。这些因素或信号可以被分配权重并且用来生成分值,其中与 最高分值相关联的结果被识别为预渲染候选并且与预渲染指令相关联。所有具有高于特定 阈值的分值的搜索结果都可以被识别为预渲染候选,或者仅设定数量的搜索结果可以被识 别为预渲染候选。
[0090] 在阶段906,预渲染指令被嵌入在搜索结果页面内,例如向适当搜索结果添加预渲 染HTML标签。在阶段908,具有所嵌入的预渲染指令的这些结果被提供至客户端102。
[0091] 图10是描绘依据本公开各方面的用于获得预渲染度量的方法1000的示例的流程 图。获得用于预渲染操作的度量允许服务器104的控制器对链路如何被识别为预渲染候选 进行管理以确保最大准确性同时使得链路被预渲染但未被选择的"错误肯定"最小化。为 了收集准确数据以对预渲染性能进行校准,可以由选择加入数据采集过程的客户端提供数 据。如所有被捕捉的用户数据,采用适当预防以使得个人用户数据匿名化并且将其从所捕 捉的度量中去除。提交度量数据的用户可以被划分为两组,接收预渲染标签但不实际预渲 染它们的"控制"组以及实际执行预渲染操作的"测试"组。
[0092] 对于托管搜索结果的页面以及执行预渲染的客户端而言,错误预测的选择导致系 统资源的浪费。然而,覆盖也应当足够高以提供一致的用户获益以及最优的用户体验。浏 览器可以了解到预渲染的页面何时被交换到可见浏览器实例中,从而可能对发生交换时与 页面完全加载时之间的时间进行记录。该数值指示预渲染操作节约了多少时间。
[0093] 控制组提供用以跟踪搜索结果的选择与所选择的结果在浏览器中的显示之间的 时间量进行跟踪的基线。该结果可以与在浏览器中显示预渲染页面所占用的时间量进行比 较以针对执行预渲染操作的用户确定总体获益。通过针对各个链接确定通过使能预渲染操 作而节约的时间量,可以选择节约了最优时间量的链接进行预渲染。频繁生成"错误肯定" 或者其它次优预渲染性能的链路可以被特别识别为预渲染的不良候选。以这种方式,方法 1000提供了可以被用来对预渲染操作进行细调以确保最大准确性和覆盖的度量。
[0094] 在阶段1002,客户端102接收搜索结果集合以及与那些搜索结果相关联的预渲染 指令集合。如果客户端102是"测试"客户端,则与预渲染指令相关联的搜索结果可以在隐 藏的浏览器实例中预渲染。如果客户端是"控制"客户端,则该搜索结果可以不被预渲染。 "测试"客户端可以进一步被划分为子群组。例如,每个测试客户端可以包括在编号为1至 9的子群组之中。这些子群组可以采用不同的预渲染技术(例如,不同的搜索结果选择方 法,用于预渲染的不同阈值)以确定与每种预渲染技术相关联的性能获益。可以在搜索结 果页面的地址中向客户端指定特定测试标识符,诸如通过向搜索结果页面的地址附加"链 接预渲染实验"(LPE)项。LPE项可以与所提供的搜索结果与之相关联的特定预渲染实验的 诸如1至9的值相关联。客户端可以在存储度量时对LPE项进行跟踪以改进预渲染过程。
[0095] 在阶段1004,针对对特定搜索结果的选择,诸如经由鼠标点击、触摸屏事件或特定 结果上的键盘按压,监视与客户端的用户交互。
[0096] 在阶段1006,识别与所选择的结果相关联的任意重定向标识符。搜索引擎在显示 搜索结果时频繁使用重定向;搜索结果页面中的超链接可以链接至搜索引擎重定向页面, 其指向被预渲染的实际内容。当使用"控制"客户端选择了具有重定向操作的页面时,该方 法可以将该重定向页面识别为结果来替代该重定向页面重指向到的结果。该重定向页面的 目标地址可以在预渲染指令中进行指定以确保该度量适当地涉及实际目的地页面而不是 重定向页面的加载时间。以这种方式,客户端能够"获知"这样的重定向何时在搜索结果页 面上发生,并且因此保存"本来将"已被预渲染的搜索结果中的地址的记录,并且因此正确 地记录实际目的地页面的页面加载时间。
[0097] 在测试客户端出于实验的目的而被划分为子群组的情况下,重定向标识符可以被 用来跟踪实验的结果。例如,搜索结果的集合可以与预渲染指令的给定集合和给定测试标 识符(例如,指定用于选择要预渲染的链接的特定算法)相关联。当用户选择所呈现的链 接中的一个时,与所选择的链接相关联的重定向链接可以指示实验子群组(例如,1至9)、 所选择的链接、搜索查询以及所选择的链接是否被预渲染。
[0098] 在阶段1008,测量所选择的结果页面的加载时间。该加载时间涉及从用户选择搜 索结果时到搜索结果在浏览器中被完全加载时的时间。在"控制"客户端中,该加载时间包 括通过网络从托管内容的服务器请求与搜索结果相关联的内容以及在浏览器中渲染该内 容的动作。在"测试"客户端中,该加载时间包括请求在预渲染操作期间未接收到的任何内 容以及在浏览器中显示该内容所用的时间。典型地,与"测试"客户端相关联的加载时间应 当小于与"控制"客户端相关联的时间,因为"测试"客户端在事务的网络内容请求部分方 面有所领先。针对"测试"客户端和"控制"客户端的加载时间的比较给出了通过预渲染为 用户节约了多少时间的宽泛画面。
[0099] 在阶段1010,搜索结果选择、搜索结果选择是否被预渲染、LPE编号以及搜索结果 选择的加载时间作为度量进行存储。这些度量可以提供指示预渲染指令的准确性(例如, 预渲染的搜索结果是否被选择)以及预渲染操作所节约的时间量(例如,"控制"客户端和 "测试"客户端中的加载时间之间的差异)的数据。该度量可以被立即上传至服务器104以 便进行分析,或者存储在客户端102上以便定期上传至服务器104。服务器014可以对该度 量执行自动处理以识别要预渲染的特定结果,诸如从搜索结果中去除具有低预渲染准确性 的预渲染指令。
[0100] 所图示的方法的各阶段并非意在作为限制。该方法的功能可以以比所示出更少或 更多数量的阶段来体现,并且即使利用所描绘的方法,事件的特定顺序也可以与图中所示 出的有所不同。
[0101] 这里所描述的系统和方法有利地提供了一种用于对搜索结果页面进行预渲染的 改进的方法和系统。通过将预渲染指令嵌入在搜索结果页面内,可以通过减少用户可能选 择的搜索结果的等待时间而使得用户体验有所改善。搜索引擎非常适用于以这种方式提供 预渲染指令,因为其可以将诸如站点业务、结果相关性、特定搜索查询、历史导航数据以及 用于提供预渲染指令的其它度量之类的变量纳入考虑在内,上述预渲染指令使得覆盖和准 确性最大化并且使得错误肯定和所浪费的带宽最小化。该搜索引擎还可以与收集用于改善 预渲染体验的度量的客户端设备进行通信。
[0102] 由于以上所讨论的特征的这些和其它变体及组合能够得以利用而并不背离如权 利要求所限定的公开,所以实施例的以上描述应当以说明的方式进行理解而并非对如权利 要求所限定的公开进行限制。还将要理解的是,提供本公开的示例(以及如"诸如"、"例如"、 "包括"等为措辞的子句)并不应当被解释为将本公开限制为具体示例;相反,该示例仅意 在对许多可能实施例中的一些进行说明。
【权利要求】
1. 一种用于使用搜索结果页面进行预渲染的计算机实施的方法,所述方法包括: 使用处理器确定响应于搜索查询的至少一个搜索结果; 生成包括所述至少一个搜索结果的搜索结果页面; 在所述至少一个搜索结果中识别至少一个预渲染候选,所述至少一个预渲染候选指示 可能被选择的搜索结果; 在所述搜索结果页面中嵌入用于所述至少一个预渲染候选的预渲染指令;以及 将所述搜索结果页面提供至提供了所述搜索查询的客户端设备。
2. 根据权利要求1所述的方法,其中所述至少一个预渲染候选使用至少一个信号来识 另IJ,其中所述至少一个信号是所述搜索结果被选择的频率、从所述搜索引擎流向所述搜索 结果的业务量、所述客户端设备的位置、或者与所述搜索结果相关联的一个或多个资源的 大小。
3. 根据权利要求1所述的方法,其中所述预渲染指令被嵌入在与所述至少一个搜索结 果相关联的超文本标记语言标签内。
4. 根据权利要求1所述的方法,其中所述预渲染指令经由客户端侧脚本被提供至所述 客户端设备。
5. 根据权利要求1所述的方法,进一步包括: 从所述客户端设备接收指示所述预渲染候选在显示时是否被选择的度量;以及 使用所述度量来识别响应于后续搜索查询的未来的预渲染候选。
6. 根据权利要求5所述的方法,其中所述度量是所选择的链接是否被预渲染或者所选 择的链接的加载时间中的至少一个。
7. 根据权利要求1所述的方法,进一步包括: 在所述搜索结果页面中嵌入实验标识符,所述实验标识符对应于用来识别所述至少一 个预渲染候选的特定方法;以及 使用与所述搜索结果页面相关联的一个或多个重定向操作来识别与选择操作以及所 述至少一个预渲染候选是否被选择相关联的实验标识符。
8. -种用于使用搜索结果页面进行预渲染的计算机实施的方法,所述方法包括: 向搜索引擎发送搜索查询; 接收响应于所述搜索查询的搜索结果集合,所述搜索结果集合包括指示所述搜索结果 中的至少一个是用于预渲染的候选的至少一个预渲染指令; 识别所述至少一个预渲染指令;以及 预渲染与所述至少一个预渲染指令相关联的所述至少一个搜索结果。
9. 根据权利要求8所述的方法,进一步包括: 监视对从所述搜索结果集合选择的搜索结果执行的选择操作;以及 如果所选择的搜索结果是所述至少一个搜索结果,则将所述至少一个搜索结果交换到 活动浏览器实例中。
10. 根据权利要求8所述的方法,进一步包括: 存储与对从所述搜索结果集合选择的搜索结果的选择相关联的度量;以及 传送所述度量以提供统计数据来改进响应于后续搜索查询对预渲染候选的选择。
11. 根据权利要求10所述的方法,其中所述度量是所选择的搜索结果、所选择的搜索 结果是否为所述至少一个搜索结果、以及用于访问所选择的搜索结果的页面加载时间中的 至少一个。
12. 根据权利要求8所述的方法,进一步包括: 执行所述预渲染指令以将预渲染标签插入到与至少一个搜索结果相关联的超链接中。
13. 根据权利要求10所述的方法,其中所述度量进一步包括嵌入在所述搜索结果集合 中的实验标识符,所述实验标识符指示用于将所述搜索结果中的所述至少一个选择为预渲 染的候选的方法。
14. 一种包括指令的非瞬时的计算机可读存储介质,所述指令在被处理器执行时执行 一种方法,所述方法包括: 向搜索引擎发送搜索查询; 接收响应于所述搜索查询的搜索结果集合,所述搜索结果集合包括指示所述搜索结果 中的至少一个是用于预渲染的候选的至少一个预渲染指令; 识别所述至少一个预渲染指令;以及 预渲染与所述至少一个预渲染指令相关联的所述至少一个搜索结果。
15. 根据权利要求14所述的非瞬时的计算机可读介质,其中所述指令进一步包括: 监视对从所述搜索结果集合选择的搜索结果执行的选择操作;以及 如果所选择的搜索结果是所述至少一个搜索结果,则将所述至少一个搜索结果交换到 活动浏览器实例中。
16. 根据权利要求14所述的非瞬时的计算机可读介质,其中所述指令进一步包括: 存储与对从所述搜索结果集合选择的搜索结果的选择相关联的度量;以及 传送所述度量以提供统计数据来改进响应于后续搜索查询对预渲染候选的选择。
17. 根据权利要求14所述的非瞬时的计算机可读介质,其中所述度量是所选择的搜索 结果、所选择的搜索结果是否为所述至少一个搜索结果、以及用于访问所选择的搜索结果 的页面加载时间中的至少一个。
18. 根据权利要求14所述的非瞬时的计算机可读介质,其中所述度量进一步包括嵌入 在所述搜索结果集合中的实验标识符,所述实验标识符指示用于将所述搜索结果中的至少 一个选择为用于预渲染的候选的方法。
19. 一种用于使用搜索结果页面进行预渲染的处理系统,所述处理系统包括: 耦合至至少一个处理器的存储器;和 所述至少一个处理器,被配置为: 确定响应于搜索查询的至少一个搜索结果; 生成搜索结果页面,所述搜索结果页面包括所述至少一个搜索结果; 在所述至少一个搜索结果中识别至少一个预渲染候选,所述至少一个预渲染候选指示 可能被选择的搜索结果; 在所述搜索结果页面中嵌入关于所述至少一个预渲染候选的预渲染指令;以及 将所述搜索结果页面提供至提供了所述搜索查询的客户端设备。
20. 根据权利要求19所述的处理系统,其中所述至少一个预渲染候选使用至少一个信 号来识别,其中所述至少一个信号是所述搜索结果被选择的频率、从所述搜索引擎流向所 述搜索结果的业务量、所述客户端设备的位置、或者与所述搜索结果相关联的一个或多个 资源的大小。
21. 根据权利要求19所述的处理系统,其中所述预渲染指令被嵌入在与所述至少一个 搜索结果相关联的超文本标记语言标签内。
22. 根据权利要求19所述的处理系统,其中所述预渲染指令经由客户端侧脚本被提供 至所述客户端设备。
23. 根据权利要求19所述的处理系统,其中所述处理器进一步被配置为: 从所述客户端设备接收指示所述预渲染候选在显示时是否被选择的度量;以及 使用所述度量来识别响应于后续搜索查询的未来的预渲染候选。
24. 根据权利要求23所述的处理系统,其中所述度量是所选择的链接是否被预渲染或 者所选择的链接的加载时间中的至少一个。
25. 根据权利要求19所述的处理系统,其中所述处理器进一步被配置为: 在所述搜索结果页面中嵌入实验标识符,所述实验标识符对应于用来识别所述至少一 个预渲染候选的特定方法;以及 使用与所述搜索结果页面相关联的一个或多个重定向操作来识别与选择操作以及所 述至少一个预渲染候选是否被选择相关联的实验标识符。
【文档编号】G06F15/16GK104067274SQ201380006026
【公开日】2014年9月24日 申请日期:2013年1月17日 优先权日:2012年1月19日
【发明者】蒂莫·布卡德, 齐加·马赫科维克, 克里斯托弗·本策尔 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1