用于预先动作执行的技术的制作方法

文档序号:12071807阅读:248来源:国知局
用于预先动作执行的技术的制作方法与工艺

现代web浏览器支持各种旨在减少终端用户的导航等待时间的特征。一些浏览器可以在用户使用或访问相应的资源之前预取资源、预渲染资源和/或执行其它预先动作。例如,网站可以规定,用户极有可能需要特定链接的资源,并且浏览器可以在资源被访问之前(例如,在资源被点击之前)取得和/或渲染该资源。

虽然预取资源的目标是改善用户体验,但是在一些情形下,用户体验受到妨碍。也即,如果预取的或预渲染的资源实际上被用户访问(例如,点击),则从用户的角度看是改善了网络等待时间。然而,如果预取的或预渲染的资源未被访问,则计算机处理时间和网络带宽由于取得/渲染了不需要的资源而被浪费。执行适当的预先动作的任务由于用户具有不同的偏好和习惯并且因此不会在所有情形下同等可能访问特定的资源的事实而进一步复杂化。

附图说明

在附图中,本文所描述的概念是通过举例说明而不是通过限制的方式说明的。为图示说明简化和清晰,在图中所示的元件不一定是按比例绘制。在考虑适当的情况下,在图中重复附图标记以指示相应的或类似的元件。

图1是通过客户端计算设备进行预先动作执行的系统的至少一个实施例的简化的框图;

图2是图1的系统的客户端计算设备的环境的至少一个实施例的简化的框图;

图3是图1的系统的服务器的环境的至少一个实施例的简化的框图;

图4-5是通过图1的系统的客户端计算设备进行预先动作执行的方法的至少一个实施例的简化的流程图;以及

图6-7是通过图1的系统的服务器进行预先动作提示生成的方法的至少一个实施例的简化的流程图。

具体实施方式

虽然本公开的概念易于进行各种修改和得到替代的形式,其具体的实施例在附图中通过示例的方式示出且将在本文详细说明。然而,应当理解,不意在将本公开的概念限于所公开的特定的形式,而是相反,本发明要涵盖与本公开和随附权利要求一致的所有的修改、等同内容和可替代的内容。

在说明书中提到“一个实施例”、“实施例”、“示例性的实施例”等表明所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以或者可以不必包含该特定的特征、结构或特性。而且,这些措辞不一定是指同一实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为与其它实施例结合来实现该特征、结构或特性在本领域技术人员的知识范围内,无论是否明确地说明。另外,应当意识到,呈“至少一个A、B和C”的形式的列表中所包含的项可以意指(A);(B);(C);(A和B);(B和C);(A和C);或者(A、B和C)。类似地,呈“A、B或C中的至少一个”的形式所列的项可以意指(A);(B);(C);(A和B);(B和C);(A和C);或者(A、B和C)。

在一些情况下,公开的实施例可以利用硬件、固件、软件或其任意组合来实现。公开的实施例还可以实现为由一个或多个暂态的或非暂态的机器可读(例如,计算机可读)存储介质承载或存储于其中的指令,这些指令可由一个或多个处理器读取和执行。机器可读存储介质可以实施为用于以机器可读的形式存储或传输信息的任意存储设备、机制或其它物理结构(例如,易失性或非易失性的存储器、介质盘或其它介质设备)。

在附图中,一些结构或方法特征可以具体的排列和/或排序来示出。然而,应当意识到,可以不要求这些具体的排列和/或排序。相反,在一些实施例中,这些特征可以按不同于示例性的图中所示出的方式和/或顺序来排列。另外,在特定的图中包含结构或方法特征不意在暗示该特征在所有实施例中都需要,在一些实施例中,可以不包含该特征或者该特征可与其它特征相结合。

现在参考图1,通过计算设备执行预先动作的示例性的系统包括客户端计算设备102、网络104和服务器106。如下文详述的,在使用时,客户端计算设备102可以从服务器106请求资源,例如,网页。服务器106基于所请求的资源而生成内容并且包括一个或多个预先动作提示以供客户端计算设备102考虑。在示例性的实施例中,预先动作提示是在接收到执行动作的相应的用户请求之前客户端计算设备102所采取的建议动作。例如,服务器106可以基于所请求的资源而建议客户端计算设备102预取和/或预渲染一个或多个其它资源(例如,通过所请求的资源链接的网页)。客户端计算设备102接收来自服务器106的内容,并且确定与预先动作提示相对应的预先动作成功的可能性,并且基于所确定的成功的可能性来确定要执行的一个或多个预先动作。换言之,在示例性的实施例中,服务器106在分布给客户端计算设102的内容中对预先动作提示做标记,并且客户端计算设备102评估那些预先动作提示(例如,通过概率方法)以便例如确定执行哪些预先动作来改善预先动作精度。

客户端计算设备102可以实施为能够执行本文所述的功能的任意类型的计算设备。例如,客户端计算设备102可以实施为台式计算机、服务器、路由器、交换机、膝上型计算机、平板式计算机、笔记本、上网本、ultrabookTM、蜂窝电话、智能手机、可佩戴式计算设备、个人数字助理、移动因特网设备、混合式设备和/或任何其它计算/通信设备。如图1所示,示例性的客户端计算设备102包括处理器110、输入/输出(“I/O”)子系统112、存储器114、数据存储设备116、通信电路系统118和一个或多个外围设备120。当然,在其它实施例中,客户端计算设备102可以包括其它或附加的组件,诸如那些常见于典型的计算设备中的组件(例如,各种输入/输出设备和/或其它组件)。另外,在一些实施例中,示例性的组件中的一个或多个可并入另一组件中,或者以其它方式构成另一组件的部分。例如,在一些实施例中,存储器114或其部分可并入处理器110中。

处理器110可以实施为能够执行本文所述的功能的任意类型的处理器。例如,处理器110可以实施为单核或多核处理器、数字信号处理器、微控制器或其它处理器或处理/控制电路。类似地,存储器114可以实施为能够执行本文所描述的功能的任意类型的易失性或非易失性的存储器或数据存储设备。在操作中,存储器114可以存储在客户端计算设备102的操作过程中所使用的各种数据和软件,例如操作系统、应用、程序、库和驱动程序。存储器114经由I/O子系统112与处理器110通信耦合,I/O子系统112可以实施为促进与处理器110、存储器114和客户端计算设备102的其它组件的输入/输出操作的电路系统和/或组件。例如,I/O子系统112可以实施为或以其它方式包含存储器控制器集中器、输入/输出控制集中器、固件设备、通信链路(即,点对点链路、总线链路、电线、电缆、光导、印刷电路板印制线等)和/或促进输入/输出操作的其它组件和子系统。在一些实施例中,I/O子系统112可以形成片上系统(SoC)的一部分且连同处理器110、存储器114和/或客户端计算设备102的其它组件一起并入单个集成电路芯片。

数据存储设备116可以实施为被配置用于数据的短期或长期存储的任意类型的一个设备或多个设备,诸如例如存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器、或其它数据存储设备。如图1所示,客户端计算设备102的数据存储设备116包括历史行为数据库122和一个或多个用户简档124。在示例性的实施例中,历史行为数据库122包括关于客户端计算设备102的特定用户的历史行为的信息。例如,如下文所述,客户端计算设备102基于所采取的预先动作的成功或失败(例如,基于从服务器106接收到的预先动作提示)而更新历史行为数据库122。在一些实施例中,历史行为数据库122可以包括指示用户行为的任何另外的信息,诸如例如购物清单、浏览器历史、偏好、习惯和/或其它行为信息。用户简档124可以包括标识客户端计算设备102的具体的用户的方面的任何信息(即,用户简档数据)。如下文所述,用户简档可以用于例如确定建议预先动作的成功的可能性。在一些实施例中,用户简档124可以包括指示具体用户的方面或特点的用户的性别、年龄、爱好、人口统计类别和/或其它信息。应当意识到,在一些实施例中,历史行为数据库122可以实施为系统范围的历史行为数据库,和/或用户简档124可以实施为系统范围的用户简档124,而在其它实施例中,历史行为数据库122和/或用户简档124可以特别地与本文所述的预先动作执行技术相关。

虽然在示例性的实施例中历史行为数据库122和用户简档124包含在数据存储设备116中,在其它实施例中历史行为数据库122和/或用户简档124可以存储在客户端计算设备102上的其它地方。此外,在一些实施例中,历史行为数据库122和/或用户简档124可以远程地存储且是客户端计算设备102能访问的。在一些实施例中,历史行为数据库122和用户简档124是服务器106无法访问的,例如,增强相应用户的隐私。数据存储设备116和/或存储器114可以存储如下文所述的客户端计算设备102的操作中有用的各种数据。

客户端计算设备102的通信电路系统118可以实施为能够实现客户端计算设备102与其它远程设备(例如,服务器106)之间的通信的任何通信电路系统、设备或其集合。通信电路系统118可以被配置为使用任意一个或多个通信技术(例如,无线或有线通信)和相关联的协议(例如,以太网、WiMAX等)来实现该通信。

外围设备120可以包括任意数量的附加的外围或接口设备,例如扬声器、麦克风、附加的存储设备等。包含在外围设备120中的特定的设备可取决于例如客户端计算设备102的类型和/或预期用途。

网络104可以实施为能够促进客户端计算设备102与远程设备(例如,服务器106)之间的通信的任意类型的通信网络。因此,网络104可以包括一个或多个网络、路由器、交换机、计算机和/或其它中间设备。例如,网络104可以实施为或以其它方式包含一个或多个蜂窝网络、电话网络、局域网或广域网、公共可用全局网络(例如,因特网)、自组织网络或其任意组合。

服务器106可以实施为能够执行本文所述的功能的任意类型的计算设备。例如,在一些实施例中,服务器106实施为被配置成将web内容输送到客户端计算设备102的web服务器或web服务器集合。在一些实施例中,服务器106可以类似于如上所述的客户端计算设备102。例如,服务器106可以实施为台式计算机、服务器、膝上型计算机、笔记本、上网本、ultrabookTM、个人数字助理、移动因特网设备、可佩戴式计算设备、混合式设备和/或任何其它计算/通信设备。此外,服务器106可以包括类似于上述的客户端计算设备102的那些组件的组件。客户端计算设备102的那些组件的描述同样适用于服务器106的组件的描述,为描述的简要在此不重复说明。

另外,在示例性的实施例中,导航行为数据库130存储在服务器106上或以其它方式对服务器106来说是能访问的。在一些实施例中,导航行为数据库130包括关于计算设备(例如,客户端计算设备102)与服务器106的导航交互的历史信息。例如,在示例性的实施例中,导航行为数据库130包括基于会话的资源访问记录。应当意识到,资源记录在这些实施例中是基于会话的,而不是基于用户的,以维护用户的隐私。如下文所述,服务器106可以基于来自计算设备(例如,客户端计算设备102)的资源请求(例如,用户发起的请求)来更新导航行为数据库130。此外,应当意识到,服务器106可以包括其它的组件、子组件以及常见于计算设备的设备,这些在上文提到客户端计算设备102时没有进行论述,在此为了描述的简要不进行论述。另外,在一些实施例中,客户端计算设备102的组件中的一个或多个可从服务器106中省去(例如,外围设备120)。虽然在图1的示例性的实施例中仅示出了一个客户端计算设备102、一个网络104和一个服务器106。但是系统100在其它实施例中可以包括多个客户端计算设备102、网络104和/或服务器106。例如,客户端计算设备102可以通过多个网络104来与多个web服务器106通信以访问内容、预先动作提示和/或其它与特定资源的访问有关的信息。

现在参考图2,在使用时,客户端计算设备102建立了用于预先动作执行的环境200。客户端计算设备102的示例性的环境200包括预先动作管理模块202、用户输入模块204、数据库管理模块206和通信模块208。另外,在示例性的实施例中,预先动作管理模块202包括提示提取模块210、上下文确定模块212、可能性确定模块214和预先动作执行模块216。环境200的各个模块可以实施为硬件、软件、固件或其组合。另外,在一些实施例中,示例性的模块中的一个或多个可以构成另一模块的部分,和/或示例性模块中的一个或多个模块可以实施为单独的或独立的模块。例如,环境200的模块、逻辑和其它组件中的每一个可以构成客户端计算设备102的处理器110的部分或以其它方式通过客户端计算设备102的处理器110建立。

预先动作管理模块202被配置成基于接收自服务器106的预先动作提示(如果有的话)来确定要执行哪些预先动作(例如,预取、预渲染等)。如上所指示,示例性的预先动作管理模块202包括提示提取模块210、上下文确定模块212、可能性确定模块214和预先动作执行模块216。

如本文所述的,服务器106将包含各种预先动作提示的内容提供给客户端计算设备102,客户端计算设备102可以作用于预先动作提示或者忽略预先动作提示,取决于特定的实施例。提示提取模块210被配置成利用任何适合的技术和/或机制从接收自客户端计算设备102(例如,经由通信模块208)的内容中提取预先动作提示。在一些实施例中,由服务器106提供的预先动作提示中的一个或多个可以是提示提取模块210不能解释的,在该情况下,提示提取模块210可以例如忽略无法解释的预先动作提示或者生成指示预先动作提示尚未处理的警告消息。在一些实施例中,仅在预先动作提示能由客户端计算设备102解释的情况下,客户端计算设备102的提示提取模块210提取预先动作提示。

上下文确定模块212被配置成确定客户端计算设备102的上下文。另外,在一些实施例中,上下文确定模块212可以从接收自服务器106的内容(例如,具有预先动作提示)中提取上下文信息或者以其它方式确定/分析上下文信息。例如,上下文确定模块212可以确定客户端计算设备102的各种资源(例如,存储器、处理容量、带宽等)的可用性、执行各种预先动作的成本(例如,计算成本、带宽使用等)和/或其它与客户端计算设备102选择和/或执行预先动作有关的信息。如下文所指示的,客户端计算设备102可以使用上下文确定模块212的上下文信息或分析来确定要执行的预先动作(例如,与预先动作提示相关联的)数量。在一些实施例中,上下文信息从服务器106发送到客户端计算设备102以便分析。

可能性确定模块214确定与接收自服务器106的预先动作提示相对应的预先动作的成功的可能性。换言之,可能性确定模块214确定客户端计算设备102的用户请求与预先动作相对应的待采取的特定动作的可能性(例如,概率)。例如,客户端计算设备102可以从服务器106请求特定的网页(例如,ABC网页)。如上文所指示,服务器106可以将所请求的ABC网页发送给客户端计算设备102且包括与ABC网页的各种子资源的访问有关的一个或多个预先动作提示(例如,到DEF网页的链接,到GHI网页的链接以及到JKL网页的链接)。预先动作提示可以包括例如预取DEF网页、GHI网页和/或JKL网页的建议。换言之,在示例性的实施例中,预先动作提示是在客户端计算设备102的用户实际上请求该待采取的动作之前客户端计算设备102所采取的建议的预先动作。在确定预取例如DEF网页的成功的可能性中,可能性确定模块214可以确定客户端计算设备102的用户请求DEF网页的概率。在示例性的实施例中,可能性确定模块214基于历史行为数据库122和/或用户简档124来确定预先动作的成功的可能性。应当意识到,可能性确定模块214可以使用任何适合的技术、算法和/或机制来这样做。

预先动作执行模块216确定要执行的一个或多个预先动作且执行那些确定的预先动作。在示例性的实施例中,预先动作执行模块216基于由可能性确定模块214所确定的那些预先动作的成功的可能性来确定要执行哪些预先动作。例如,预先动作执行模块216可以执行最可能成功的一个、两个、三个或另一数量的预先动作。在一些实施例中,预先动作执行模块216可以基于成功的可能性来对预先动作排序和/或在确定要执行的预先动作时考虑客户端计算设备102或其它上下文信息的能力。当然,在其它实施例中,预先动作执行模块216可以使用任何适合的算法、技术和/或机制来确定要执行哪些预先动作。如上文所指示,预先动作可以包括例如预取或预渲染特定的资源(例如,网页)。

用户输入模块204被配置成处理客户端计算设备102的用户输入。在示例性的实施例中,用户输入模块204可以判定资源请求是用户发起的还是自动请求的(例如,没有用户参与)。此外,用户输入模块204可以对资源请求加标签和/或以其它方式提供特定的资源请求是用户发起的指示,客户端计算设备102和/或服务器106可以使用该指示,如本文所述的。例如,在一些实施例中,用户输入模块204可以在网页被请求时“钩”上用户的鼠标/触摸事件且包括网页是用户利用发送给服务器106的请求的统一资源标识符(URI)发起的指示。可替代地或者附加地,用户输入模块204可以提供利用可扩展标记语言超文本传输协议请求(XMLHttpRequest或XHR)或信标来提供该指示。当然,在其它实施例中用户输入模块204可以其它方式指示资源是用户请求的。

数据库管理模块206维护客户端计算设备102的历史行为数据库122和/或用户简档124。例如,在示例性的实施例中,数据库管理模块206基于所执行的预先动作的成功或失败来更新历史行为数据库122。

通信模块208处理客户端计算设备102与远程计算设备(例如,服务器106)之间通过网络104的通信。例如,如本文所述,通信模块208可以与服务器106通信以请求特定的资源(例如,客户端计算设备102的用户所点击的链接的网页)并且接收相应的内容(例如,网页和任何生成的预先动作提示)。

现在参考图3,在使用时,服务器106建立用于预先动作提示生成的环境300。服务器106的示例性的环境300包括内容生成模块302、数据库管理模块304、提取模块306、预先动作提示模块308和通信模块310。环境300的各个模块可以实施为硬件、软件、固件或其组合。另外地,在一些实施例中,一个或多个示例性的模块可以构成另一模块的一部分,和/或一个或多个示例性的模块可以实施为单独的或独立的模块。例如,环境300的各个模块、逻辑和其它组件可构成服务器106的处理器的一部分或通过其它方式由服务器106的处理器建立。

内容生成模块302基于接收自客户端计算设备102(例如,经由通信模块310)的资源请求来生成内容。在示例性的实施例中,内容生成模块302生成包括客户端计算设备102所请求的资源(例如,网页)和用于发送给客户端计算设备102的一个或多个预先动作提示的内容。如上文所指示,客户端计算设备102考虑预先动作提示且判定是否执行对应的预先动作中的任一个。例如,在一些实施例中,内容生成模块302可以标识所请求的资源且使用JavaServer Pages(JSP)或超文本预处理器(Hypertext Preprocessor(PHP))来生成超文本标记语言(HTML)文档或用来自服务器106的一个或多个数据库的数据填充HTML文档。如果预先动作提示被标识,则内容生成模块302可以更新生成的内容(例如,HTML文件)以包含预先动作提示(例如,作为参数或“后台”数据)。例如,取决于特定的实施例,内容生成模块302可以更新内容本身以包含预先动作提示,将预先动作提示并入生成的内容的报头中,准备预先动作提示以便独立于所生成的内容(例如,与所生成的内容同时地)发送到客户端计算设备102,或者以其它方式将预先动作提示传达到客户端计算设备102。

数据库管理模块304维护服务器106的导航行为数据库130。例如,在示例性的实施例中,数据库管理模块304判定对接收自客户端计算设备102的特定资源的请求是否由客户端计算设备102的用户发起(即,判定请求是否是用户发起的),并且如果是,则基于所请求的资源(例如,网页)来更新导航行为数据库130。例如,数据库管理模块304可以将所请求的资源与服务器106与客户端计算设备102之间的当前会话的会话标识符相关联。如上文所论述的,客户端计算设备102可以取决于特定实施例而通过多种方式通知服务器106资源是用户请求的。

提取模块306从所请求的资源或相应生成的内容中提取一个或多个子资源。例如,在一些实施例中,客户端计算设备102可以请求特定的网页的资源。在这些实施例中,服务器106构建所请求的网页以发送给客户端计算设备102。所请求的/构建的网页可以包括例如到其它网页和/或其它子资源的超链接,这些超链接由提取模块306提取用于如本文所论述的生成的预先动作提示。应当意识到,在一些实施例中,服务器106可以确定对于特定的资源请求不生成预先动作提示。例如,提取模块306可以确定如果导航行为数据库130为空、所请求的资源不包含子资源和/或由于其它适当的原因(取决于特定实施例)则不从所请求的资源或生成的内容来提取子资源。

预先动作提示模块308基于所提取的子资源来判定哪个预先动作提示(如果有)向客户端计算设备102提供所请求的资源。如上文所指示,预先动作提示是客户端计算设备102所采取的建议动作,其可以例如减少与访问或渲染所请求的资源相关联的等待时间且因此改善用户体验。特别地,预先动作提示是在客户端计算设备102的用户实际上请求所要采取的动作之前客户端计算设备102所要采取的建议动作。例如,预先动作提示模块308可以生成指示客户端计算设备102应当预取特定资源(例如,网页)的预先动作提示。如上文所论述,客户端计算设备102分析预先动作提示以确定要执行哪些对应的预先动作(如果有)。应当意识到,预先动作提示模块308可以使用任何适合的用于生成预先动作提示的算法、技术和/或机制。例如,在示例性的实施例中,预先动作提示模块308使用协作过滤算法来确定最类似于服务器106与客户端计算设备102之间的当前会话的、服务器106与计算设备(例如,客户端计算设备102或另一计算设备)之间的先前的会话,并且基于在先前的类似会话中所请求的资源来确定预先动作提示。当然,如上文所表明的,在其它实施例中,预先动作提示模块308可以使用其它适合的过滤算法。

通信模块310处理服务器106与远程计算设备(例如,客户端计算设备102)之间经由网络104的通信。例如,如本文所述的,通信模块310可以接收来自客户端计算设备102的对特定的资源(例如,网页)的请求并且利用相应生成的内容和预先动作提示来回应客户端计算设备102。

现在参考图4-5,在使用时,客户端计算设备102可以执行方法400以用于预先动作执行。示例性的方法400开始于图4的框402,其中客户端计算设备102从服务器106请求资源。例如,在框404中,客户端计算设备102可以从服务器106请求网页。在这些实施例中,客户端计算设备102可以响应于用户点击超链接来请求网页。如上文所指示,服务器106可以基于所请求的请求来确定用于客户端计算设备102的一个或多个预先动作提示。下面参考图6-7来说明该预先动作提示生成的方法600的示例性的实施例。

在框406中,客户端计算设备102接收来自服务器106的包含所请求的资源(例如,网页)和一个或多个预先动作提示的内容。在框408中,客户端计算设备102判定其是否能够解释接收到的预先动作提示。在一些实施例中,客户端计算设备102能够解释一些预先动作提示(例如,某种格式的,而不能解释其它格式的),因此,客户端计算设备102可以判定预先动作提示是否呈可解释的格式。在其它实施例中,客户端计算设备102不能解释的预先动作提示甚至不会由客户端计算设备102识别(例如,识别为存在)。如果客户端计算设备102不能解释预先动作提示,则客户端计算设备102可以渲染或以其它方式处理接收到的内容,而不考虑预先动作提示(例如,因为客户端计算设备102正常地将处理该内容)。方法400返回框402,在框框402中,客户端计算设备102请求服务器106的另一资源(例如,响应于用户点击网页上的链接)。然而,如果存在客户端计算设备102能解释的至少一个预先动作提示,则在框410中客户端计算设备102从接收到的内容中提取能解释的预先动作提示。应当意识到,在一些实施例中,客户端计算设备102可以在将特定的预先动作提示从接收到的内容中提取后判定客户端计算设备102是否能解释该特定的预先动作提示。

在框412中,客户端计算设备102确定客户端计算设备102的上下文和/或取回其它上下文信息。所确定的上下文可实施为标识计算设备的特点或方面(例如,硬件或操作特点或方面)的任意数据。例如,如上文所述,客户端计算设备102可以确定客户端计算设备102的各资源(例如,存储器、处理容量、带宽等)的可用性、执行各种预先动作的成本(例如,计算成本、带宽使用等)和/或其它与客户端计算设备102选择和/或执行预先动作有关的上下文信息。此外,在一些实施例中,服务器106发送上下文信息,在该情况下,客户端计算设备102可以从接收到的内容中提取该上下文信息。

在框414中,客户端计算设备102基于历史行为数据库122和/或用户简档124来确定预先动作的成功的可能性。换言之,客户端计算设备102确定客户端计算设备102的用户请求与如上所述的预先动作对应的所要采取的特定动作的可能性(例如,概率)。也即,在一些实施例中,成功的预先动作是得到随后由用户请求以便执行的动作的预先动作。例如,在确定预取XYZ网页的预先动作的成功的可能性时,客户端计算设备102可以确定用户将要请求XYZ网页的可能性。应当意识到,通过执行成功的预先动作,例如,可以改善系统100的等待时间。特别地,在框416中,客户端计算设备102可以根据下式来确定特定的预先动作的成功的可能性

其中,SUC是预先动作的成功,并且w1,w2,...,wM是来自历史行为数据库122的彼此紧密接近的数量M个关键词。换言之,客户端计算设备102可以在给定特定的关键词集合的情况下确定成功的预先动作的概率。例如,在一些实施例中,历史行为数据库122可以包括向量列表(或类似的数据结构),每个列表记录了成功或失败以及一组关键词w1,w2,...,wN。在网页和超链接的上下文中,关键词可以包括网页中的链接、锚定文本和/或链接周围的文本。所使用的关键词的特定数量N可以根据特定实现方式而变化。应当意识到,大量的关键词可以改善预测的精度,但是这样做是以系统资源为代价的。如果提取出多于所确定的数量N的关键词,则在一些实施例中客户端计算设备102可以仅使用那些关键词中的N个。例如,客户端计算设备102可以选择具有最高逆文档频率的关键词以确保例如使用最重要的关键词。因此,如在该段中所使用的,M小于或等于N。在上文提供的条件概率中,P(SUC)是基于如历史行为数据库122所指示的用户和/或客户端计算设备102的过去经验的成功(例如,命中)的概率,P(w1,w2,...,wM)是那些关键词一起出现在历史行为数据库122中的概率,并且P(w1,w2,...,wM|SUC)是在假设预先动作成功的情况下那些关键词一起出现的概率。在一些实施例中,客户端计算设备102可以使用用户的搜索历史、喜爱的链接、地址、关键联系人和/或确定预先动作成功可能性的其它信息。

在图5的框418中,客户端计算设备102基于所确定的预先动作和/或上下文信息的成功可能性来确定一个或多个预先动作。例如,在框420中,客户端计算设备102可以确定要预取的一个或多个资源(例如,网页)。在一些实施例中,客户端计算设备102根据所确定的预先动作的成功可能性来对预先动作排序和/或以其它方式选择具有最大成功可能性的预先动作的子集(例如,那些被确定为具有大于阈值的成功可能性的预先动作)。如上文所指示,客户端计算设备102还可以在确定执行哪些预先动作时考虑另外的因素(例如,上下文信息)。例如,客户端计算设备102可以考虑预先动作的成本、客户端计算设备102的当前上下文、可用资源(例如,存储器、计算容量、带宽等)和/或其它信息。

在框422中,客户端计算设备102执行选定的/确定的预先动作。如上文所指示,在一些实施例中,预先动作包括预取资源。相应地,在框424中,在一些实施例中客户端计算设备102可以预取所确定的资源。在框426中,客户端计算设备102接收来自用户的另一资源请求。例如,用户可以点击网页上的超链接。在框428中,客户端计算设备102基于所执行的预先动作的成功或失败来更新历史行为数据库122。也即,基于资源请求,客户端计算设备102能够判定预先动作是否成功且将相应的数据存储在历史行为数据库122中以指示哪些预先动作是成功的以及哪些预先动作是不成功的。例如,如果预先动作是预取特定的网页且用户点击链接以取回该网页,则预先动作是成功的。然而,如果用户点击不同的链接,则该特定的预先动作是不成功的。

现在参考图6-7,在使用中,服务器106可以执行用于预先动作提示生成的方法600。示例性的方法600开始于框602,在框602中,服务器106接收来自客户端计算设备102的资源请求。例如,在一些实施例中,服务器106可以在框604中请求对网页的请求,如上文所述。在框606中,服务器106可以基于资源请求而生成内容。例如,如果所请求的资源是网页,则服务器106可以生成包含适当的数据的HTML文档。

在框608中,服务器106判定资源请求是否是用户发起的。如上文所指示,在一些实施例中,客户端计算设备102使用XHR或信标来提供该指示给服务器106。然而,应当意识到,客户端计算设备102可利用任何适合的技术、算法和/或机制通知服务器106资源请求是用户发起的。如果服务器106在框610中判定出资源请求是用户发起的,则在框612中服务器106基于所请求的资源来更新导航行为数据库130。如本文所论述的,在一些实施例中,所请求的资源是网页。因此,在这些实施例中,在框614中服务器106可以基于所请求的网页来更新导航行为数据库130。在框616中,服务器106将服务器106与客户端计算设备102之间的当前会话的会话标识符与所请求的资源相关联。在一些实施例中,存储更具体的会话标识符,而不是实际的会话标识符,因为用来标识服务器106的会话的实际的会话标识符经常被再循环/再使用。例如,可以基于时间戳和实际的会话标识符(例如,经由级联)来生成更具体的会话标识符。服务器106可以存储具体的会话标识符且将在该会话期间所请求的资源映射到导航行为数据库130中的具体的会话标识符。在示例性的实施例中,导航行为数据库130不维护任何用户特定信息以保护用户的隐私。

在框618中,服务器106从所请求的资源或所生成的内容中提取子资源。特别地,在框620中,服务器106可以从网页中提取超链接。例如,服务器106可以提取到需要额外的处理来访问/查看的其它资源(例如,其它网页、外部链接的图像等)的全部链接。在图7的框624中,服务器106基于所提取的子资源(例如,所提取的网页的超链接)来确定哪些预先动作提示要提供给客户端计算设备102。应当意识到,服务器106可以使用任何适合的用于确定哪些预先动作提示提供给客户端计算设备102的技术、算法和/或机制。

例如,在框624中,服务器106可以基于协作过滤算法来确定预先动作提示。应当意识到,可使用协作过滤算法来确定最类似于服务器106与客户端计算设备102之间的当前会话的(存储在导航行为数据库130中的)服务器106的先前的会话且基于在那些先前类似的会话中所请求的资源来确定提供哪些预先动作提示。例如,在一些实施例中,服务器106可以基于所提取子资源来生成子资源集合(例如,链接集合)。每个子资源可以是有效的预先动作目标(即,要预取、预渲染或以其它方式提前作用的有效子资源)。在一些实施例中,存储在导航行为数据库130中的数据可以表示为具有由服务器106的会话Si所定义的行和由资源rj所定义的列的矩阵,利用矩阵的每个输入项访问的是一(1)或零(0),取决于特定的会话是否访问相应的资源。例如,如果在第i个会话中访问过第j个资源,则矩阵的第ij个输入项将表示为1。否则,其将为0。那些值可由函数hi,j来表示。服务器106可以根据下式来确定各个资源将要在用户的下一动作中被请求的概率

其中,

s是当前会话,s’是先前会话,i是特定的资源。如上文所指示,服务器106可以选择最类似于当前会话的一组N个会话,并且确定与那些会话的资源有关的相应的预先动作提示。为预先动作提示生成而选定的会话和/或资源的数量可根据特定实施例而变化。

在框626中,服务器106用所确定的预先动作提示来更新所生成的内容(例如,HTML文档)。在框628中,服务器106将更新的内容发送到客户端计算设备102。如上文所述,服务器106可以通过适当的方式将预先动作提示嵌入所生成的内容和/或以其它方式将预先动作提示发送到客户端计算设备102以供考虑。例如,在一些实施例中,服务器106可以将预先动作提示发送到客户端计算设备102,与所请求的内容的发送几乎同时,但是独立于所请求的内容的发送。

示例

下面提供了在本文公开的技术的示例性的示例。技术的实施例可以包括下述示例中的任意一个或多个及其任意组合。

示例1包括一种用于预先动作执行的客户端计算设备,该计算设备包括:通信模块,其(i)从服务器请求资源,以及(ii)接收来自服务器的包含所请求的资源和一个或多个预先动作提示的内容,其中所述一个或多个预先动作提示中的每一个标识在接收到执行对应的建议预先动作的对应的用户请求之前所述客户端计算设备所要采取的建议预先动作;以及预先动作管理模块,其(i)基于所述客户端计算设备的用户的历史行为数据来确定一个或多个预先动作的成功可能性,其中每个预先动作对应于所述一个或多个预先动作提示中的至少一个,以及(ii)基于所确定的所述一个或多个预先动作的成功的可能性来选择要执行的预先动作。

示例2包括示例1的主题,并且其中请求所述资源包括从所述服务器请求网页。

示例3包括示例1和示例2中的任一个的主题,并且其中所述预先动作管理模块进一步判定所述一个或多个预先动作提示是否能由所述客户端计算设备解释。

示例4包括示例1-3中的任一个的主题,并且其中所述预先动作管理模块进一步响应于判定出所述一个或多个预先动作提示能够由所述客户端计算设备解释而从接收到的内容中提取一个或多个预先动作提示。

示例5包括示例1-4中的任一个的主题,并且其中所述预先动作管理模块进一步确定所述客户端计算设备的上下文;以及其中选择要执行的预先动作包括基于所确定的一个或多个预先动作的成功的可能性和所确定的所述客户端计算设备的上下文来选择要执行的预先动作。

示例6包括示例1-5中的任一个的主题,并且其中确定成功的可能性包括确定所述客户端计算设备的用户请求与待执行的对应的预先动作相关联的动作的可能性。

示例7包括示例1-6中的任一个的主题,并且其中确定所述一个或多个预先动作的成功的可能性包括根据下式来确定一个或多个预先动作的成功的可能性:

其中SUC是对应的预先动作的成功,并且w1,w2,...,wM是来自历史行为数据库的彼此紧密接近的数量M的关键词。

示例8包括示例1-7中的任一个的主题,并且其中确定一个或多个预先动作的成功的可能性包括基于历史行为数据和用户的用户简档来确定一个或多个预先动作的成功的可能性。

示例9包括示例1-8中的任一个的主题,并且其中选择要执行的预先动作包括确定要预取的资源。

示例10包括示例1-9中的任一个的主题,并且其中所述预先动作管理模块进一步执行由选定的预先动作所标识的建议预先动作。

示例11包括示例1-10中的任一个的主题,并且还包括:用户输入模块,其响应于所确定的预先动作的执行而接收来自用户的资源请求;以及数据库管理模块,其基于所执行的预先动作的成功或失败来更新所述历史行为数据库,其中如果接收到的资源请求对应于所执行的预先动作则所述预先动作被判定是成功的。

示例12包括一种通过客户端计算设备进行预先动作执行的方法,所述方法包括:通过所述客户端计算设备从服务器请求资源;通过所述客户端计算设备接收来自所述服务器的包括所请求的资源和一个或多个预先动作提示的内容,其中所述一个或多个预先动作提示中的每一个标识在接收到执行对应的建议预先动作的对应的用户请求之前所述客户端计算设备所要采取的建议预先动作;通过所述客户端计算设备基于所述客户端计算设备的用户的历史行为数据来确定一个或多个预先动作的成功的可能性,其中每个预先动作对应于一个或多个预先动作提示中的至少一个;以及通过所述客户端计算设备基于所确定的所述一个或多个预先动作的成功的可能性来选择要执行的预先动作。

示例13包括示例12的主题,并且其中请求资源包括请求来自服务器的网页。

示例14包括示例12和示例13中的任一个的主题,并且还包括通过所述客户端计算设备判定所述一个或多个预先动作提示是否能由所述客户端计算设备解释。

示例15包括示例12-14中的任一个的主题,并且还包括:响应于判定出所述一个或多个预先动作提示能够由客户端计算设备解释,通过客户端计算设备来从接收到的内容中提取一个或多个预先动作提示。

示例16包括示例12-15中的任一个的主题,并且还包括:通过客户端计算设备来确定客户端计算设备的上下文,其中选择要执行的预先动作包括基于所确定的一个或多个预先动作的成功的可能性以及所确定的客户端计算设备的上下文来选择要执行的预先动作。

示例17包括示例12-16中的任一个的主题,并且其中确定成功的可能性包括确定所述客户端计算设备的用户请求与待执行的对应的预先动作相关联的动作的可能性。

示例18包括示例12-17中的任一个的主题,并且其中确定所述一个或多个预先动作的成功的可能性包括根据下式来确定一个或多个预先动作的成功的可能性

其中SUC是对应的预先动作的成功,并且w1,w2,...,wM是来自历史行为数据库的彼此紧密接近的数量M的关键词。

示例19包括示例12-18中的任一个的主题,并且其中确定所述一个或多个预先动作的成功的可能性包括基于历史行为数据和用户的用户简档来确定一个或多个预先动作的成功的可能性。

示例20包括示例12-19中的任一个的主题,并且其中选择要执行的预先动作包括确定要预取的资源。

示例21包括示例12-20中的任一个的主题,并且还包括通过所述客户端计算设备执行由选定的预先动作所标识的建议预先动作。

示例22包括示例12-21中的任一个的主题,并且还包括:通过所述客户端计算设备响应于执行所确定的预先动作而接收来自用户的资源请求;以及通过所述客户端计算设备基于所执行的预先动作的成功或失败来更新所述历史行为数据库,其中如果接收到的资源请求对应于所执行的预先动作则所述预先动作被判定是成功的。

示例23包括一种计算设备,包括处理器;以及存储器,所述存储器中存储有多条指令,当通过所述处理器执行时,所述多条指令使所述计算设备执行示例12-22中的任一个所述的方法。

示例24包括一个或多个机器可读存储介质,其包括存储于其中的多条指令,响应于由计算设备执行,所述指令使所述计算设备执行示例12-22中任一项所述的方法。

示例25包括一种用于预先动作执行的计算设备,所述计算设备包括:用于从服务器请求资源的单元;用于接收来自所述服务器的包括所请求的资源和一个或多个预先动作提示的内容的单元,其中所述一个或多个预先动作提示中的每一个标识在接收到执行对应的建议预先动作的对应的用户请求之前所述计算设备所要采取的建议预先动作;用于基于所述计算设备的用户的历史行为数据来确定一个或多个预先动作的成功的可能性的单元,其中每个预先动作对应于一个或多个预先动作提示中的至少一个;以及用于基于所确定的所述一个或多个预先动作的成功的可能性来选择要执行的预先动作的单元。

示例26包括示例25的主题,并且其中用于请求资源的单元包括用于请求来自服务器的网页的单元。

示例27包括示例25和示例26中的任一个的主题,并且还包括用于判定所述一个或多个预先动作提示是否能够由所述计算设备解释的单元。

示例28包括示例25-27中的任一个的主题,并且还包括:用于响应于判定出所述一个或多个预先动作提示能够由计算设备解释而从接收到的内容中提取一个或多个预先动作提示的单元。

示例29包括示例25-28中的任一个的主题,并且还包括:用于确定计算设备的上下文的单元,其中用于选择要执行的预先动作的单元包括用于基于所确定的一个或多个预先动作的成功的可能性以及所确定的计算设备的上下文来选择要执行的预先动作的单元。

示例30包括示例25-29中的任一个的主题,并且其中用于确定成功的可能性的单元包括用于确定所述计算设备的用户请求与待执行的对应的预先动作相关联的动作的可能性的单元。

示例31包括示例25-30中的任一个的主题,并且其中用于确定所述一个或多个预先动作的成功的可能性的单元包括用于根据下式来确定一个或多个预先动作的成功的可能性的单元

其中SUC是对应的预先动作的成功,并且w1,w2,...,wM是来自历史行为数据库的彼此紧密接近的数量M的关键词。

示例32包括示例25-31中的任一个的主题,并且其中用于确定所述一个或多个预先动作的成功的可能性的单元包括用于基于历史行为数据和用户的用户简档来确定一个或多个预先动作的成功的可能性的单元。

示例33包括示例25-32中的任一个的主题,并且其中用于选择要执行的预先动作的单元包括用于确定要预取的资源的单元。

示例34包括示例25-33中的任一个的主题,并且还包括用于执行由选定的预先动作所标识的建议预先动作的单元。

示例35包括示例25-34中的任一个的主题,并且还包括:用于响应于执行所确定的预先动作而接收来自用户的资源请求的单元;以及用于基于所执行的预先动作的成功或失败来更新所述历史行为数据库的单元,其中如果接收到的资源请求对应于所执行的预先动作则所述预先动作被判定是成功的。

示例36包括一种用于预先动作提示生成的服务器,所述服务器包括:通信模块,其接收来自客户端计算设备的对资源的请求;内容生成模块,其生成包含所请求的资源的内容;提取模块,其从所生成的内容中提取一个或多个子资源;以及预先动作提示模块,其基于一个或多个所提取的子资源来确定要提供给所述客户端计算设备的一个或多个预先动作提示,其中所述一个或多个预先动作提示中的每一个标识在接收到执行对应的建议预先动作的对应的用户请求之前所述客户端计算设备所要采取的建议预先动作;其中所述内容生成模块进一步更新所生成的内容以包含所确定的一个或多个预先动作提示。

示例37包括示例36的主题,并且其中接收对所述资源的请求包括接收来自所述客户端计算设备的对网页的请求。

示例38包括示例36和37中的任一个的主题,并且其中生成内容包括生成用于发送给客户端计算设备的网页。

示例39包括示例36-38中的任一个的主题,并且还包括数据库管理模块,其判定对所述资源的请求是否由所述客户端计算设备的用户发起;以及响应于判定出对所述资源的请求是由所述用户发起而基于所请求的资源来更新导航行为数据库。

示例40包括示例36-39中的任一个的主题,并且其中更新所述导航行为数据库包括将所请求的资源与所述服务器与所述客户端计算设备之间的当前会话的会话标识符相关联。

示例41包括示例36-40中的任一个的主题,并且其中更新导航行为数据库包括基于由客户端计算设备请求的网页来更新导航行为数据库。

示例42包括示例36-41中的任一个的主题,并且其中从生成的内容中提取一个或多个子资源包括从生成的内容中提取一个或多个超链接。

示例43包括示例36-42中的任一个的主题,并且其中确定所述一个或多个预先动作提示包括基于协作过滤算法来确定所述一个或多个预先动作提示。

示例44包括示例36-43中的任一个的主题,并且其中确定所述一个或多个预先动作提示包括确定类似于所述服务器与所述客户端计算设备之间的当前会话的计算设备与所述服务器之间的先前会话。

示例45包括示例36-44中的任一个的主题,并且其中所述通信模块进一步将更新的内容发送给客户端计算设备。

示例46包括一种通过服务器进行的预先动作提示生成的方法,所述方法包括:通过所述服务器接收来自客户端计算设备的对资源的请求;通过所述服务器生成包含所请求的资源的内容;通过所述服务器从所生成的内容中提取一个或多个子资源;通过所述服务器且基于一个或多个所提取的子资源来确定要提供给所述客户端计算设备的一个或多个预先动作提示,其中所述一个或多个预先动作提示中的每一个标识在接收到执行对应的建议预先动作的对应的用户请求之前所述客户端计算设备所要采取的建议预先动作;以及通过所述服务器更新所生成的内容以包含所确定的一个或多个预先动作提示。

示例47包括示例46的主题,并且其中接收对资源的请求包括接收来自客户端计算设备的对网页的请求。

示例48包括示例46和47中的任一个的主题,并且其中生成内容包括生成用于发送给客户端计算设备的网页。

示例49包括示例46-48中的任一个的主题,并且还包括通过所述服务器判定对所述资源的所述请求是否由所述客户端计算设备的用户发起;以及响应于判定出对所述资源的所述请求是由所述用户发起而通过所述服务器基于所请求的资源来更新导航行为数据库。

示例50包括示例46-49中的任一个的主题,并且其中更新所述导航行为数据库包括将所请求的资源与所述服务器与所述客户端计算设备之间的当前会话的会话标识符相关联。

示例51包括示例46-50中的任一个的主题,并且其中更新所述导航行为数据库包括基于客户端计算设备请求的网页来更新导航行为数据库。

示例52包括示例46-51中的任一个的主题,并且其中从生成的内容中提取一个或多个子资源包括从生成的内容中提取一个或多个超链接。

示例53包括示例46-52中的任一个的主题,并且其中确定所述一个或多个预先动作提示包括基于协作过滤算法来确定所述一个或多个预先动作提示。

示例54包括示例46-53中的任一个的主题,并且其中确定所述一个或多个预先动作提示包括确定类似于所述服务器与所述客户端计算设备之间的当前会话的计算设备与所述服务器之间的先前会话。

示例55包括示例46-54中的任一个的主题,并且还包括通过所述服务器将更新的内容发送给客户端计算设备。

示例56包括一种计算设备,包括处理器;以及存储器,所述存储器中存储有多条指令,当通过处理器执行时,所述指令使计算设备执行示例46-55中任一个所述的方法。

示例57包括一个或多个机器可读存储介质,包括存储于其中的多条指令,响应于由计算设备执行,所述指令使所述计算设备执行示例46-55中的任一项所述的方法。

示例58包括用于预先动作提示生成的服务器,所述服务器包括:用于接收来自客户端计算设备的对资源的请求的单元;用于生成包含所请求的资源的内容的单元;用于从所生成的内容中提取一个或多个子资源的单元;用于基于一个或多个所提取的子资源来确定要提供给所述客户端计算设备的一个或多个预先动作提示的单元,其中所述一个或多个预先动作提示中的每一个标识在接收到执行对应的建议预先动作的对应的用户请求之前所述客户端计算设备所要采取的建议预先动作;以及用于更新所生成的内容以包含所确定的一个或多个预先动作提示的单元。

示例59包括示例58的主题,并且其中用于接收对资源的请求的单元包括用于接收来自客户端计算设备的对网页的请求的单元。

示例60包括示例58和59中的任一个的主题,并且其中用于生成内容的单元包括用于生成网页以发送给客户端计算设备的单元。

示例61包括示例58-60中的任一个的主题,并且,还包括用于判定对资源的请求是否由客户端计算设备的用户发起的单元;以及用于响应于判定出对资源的请求是由用户发起而基于所请求的资源来更新导航行为数据库的单元。

示例62包括示例58-61中的任一个的主题,并且其中用于更新导航行为数据库的单元包括用于将所请求的资源与服务器和客户端计算设备之间的当前会话的会话标识符相关联的单元。

示例63包括示例58-62中的任一个的主题,并且其中用于更新导航行为数据库的单元包括用于基于客户端计算设备所请求的网页来更新导航行为数据库的单元。

示例64包括示例58-63中的任一个的主题,并且其中用于从生成的内容中提取一个或多个子资源的单元包括用于从生成的内容中提取一个或多个超链接的单元。

示例65包括示例58-64中的任一个的主题,并且其中用于确定一个或多个预先动作提示的单元包括用于基于协作过滤算法来确定一个或多个预先动作提示的单元。

示例66包括示例58-65中的任一个的主题,并且其中用于确定一个或多个预先动作提示的单元包括用于确定类似于服务器与客户端计算设备之间的当前会话的、计算设备与服务器之间的先前会话的单元。

示例67包括示例58-66中的任一个的主题,并且还包括用于将更新的内容发送给客户端计算设备的单元。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1