CN114968513A - 用于预取内容项的系统和方法 - Google Patents
用于预取内容项的系统和方法 Download PDFInfo
- Publication number
- CN114968513A CN114968513A CN202210441107.4A CN202210441107A CN114968513A CN 114968513 A CN114968513 A CN 114968513A CN 202210441107 A CN202210441107 A CN 202210441107A CN 114968513 A CN114968513 A CN 114968513A
- Authority
- CN
- China
- Prior art keywords
- content
- request
- content item
- client device
- computing device
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000004044 response Effects 0.000 claims abstract description 79
- 238000012545 processing Methods 0.000 description 78
- 238000007726 management method Methods 0.000 description 71
- 238000013515 script Methods 0.000 description 67
- 238000004891 communication Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 14
- 238000001514 detection method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000001413 cellular effect Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000001953 sensory effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
提供了用于预取由在计算设备上运行的应用显示的内容项的系统和方法。该方法可以包括发送对在应用的环境内显示的内容的第一请求,对内容的第一请求包括用于确定用于显示的第一内容项的第一参数;在相关联的存储器元件中存储第一参数;发送对内容的后续请求,对内容的后续请求包括对内容的第一请求的第一参数;响应于所述对内容的后续请求,接收后续内容项;将后续内容项存储在针对应用的特定的本地高速缓存结构中;发送对内容的第二请求;响应于第二请求,从本地高速缓存结构检索后续内容项;以及响应于第二请求,在应用的环境内显示后续内容项,其中所述应用运行在计算设备上。
Description
本申请为申请日为2017年12月12日、申请号为201780014547.9、发明名称为“用于预取内容项的系统和方法”的发明专利申请的分案申请。
相关申请
本申请要求于2016年12月13日提交的题为“Systems and Methods forPrefetching Content Items(用于预取内容项的系统和方法)”的PCT申请No.PCT/US2016/066415的权益和优先权,其全部内容通过引用合并于此。
技术领域
本申请涉及用于预取内容项的系统和方法。
背景技术
在诸如互联网的计算机网络环境中,第三方内容提供者提供用于在终端用户(end-user)计算设备上显示的第三方内容项。这些第三方内容项可以显示在网页上或与各个发布者相关联的应用中。这些第三方内容项可以包括标识提供内容项的第三方内容提供者的内容。
发明内容
至少一个方面涉及一种用于预取由客户端应用呈现的动态加载的内容项的方法,所述方法包括:提供用于在客户端计算设备上与客户端应用一起执行的计算机指令,当由客户端计算设备执行时,所述计算机指令使得所述客户端计算设备:在第一时间实例向服务器发送对要在所述客户端应用的环境内呈现的内容的第一请求,对内容的所述第一请求包括标识所述客户端应用的环境内的第一内容放置空间的第一标识符,并且所述第一标识符用于选择要发送给所述客户端计算设备的内容;响应于对内容的所述第一请求,从所述服务器接收第一内容项;在与所述客户端应用相关联的客户端计算设备的一个或多个存储器元件中存储与所述第一标识符相关联的第一内容项;在将所述第一内容项存储在所述一个或多个存储器元件中之后的第二时间实例,检测指示所述第一内容放置空间内的内容呈现的事件;响应于所述检测并使用所述第一标识符,从所述一个或多个存储器元件中检索所述第一内容项;以及在所述客户端应用的环境的第一内容放置空间呈现所述第一内容项。
至少一个方面涉及一种用于预取动态加载的内容项以供在客户端计算设备上执行的客户端应用呈现的系统,包括:一个或多个处理器;和存储器,耦合到所述一个或多个处理器,所述一个或多个处理器被配置成实现上述方法。
至少一个方面涉及一种用于预取用于由在客户端计算设备上运行的应用显示的内容项(例如,动态加载的内容项)的方法,该方法包括由在包括一个或多个数据处理器的计算设备上运行的应用发送对内容的第一请求以在应用的环境内显示,对内容的第一请求包括用于确定要显示的第一内容项的第一参数。该方法还可以包括由计算设备将第一参数存储在相关联的存储元件中。该方法还可以包括由计算设备接收第一内容项。该方法还可以包括由计算设备在计算设备上运行的应用的环境内,例如在第一内容槽(content slot)中显示第一内容项。该方法还可以包括由计算设备响应于显示第一内容项,从存储元件检索对内容的第一请求的第一参数。该方法还可以包括由计算设备向服务器发送对内容的后续请求,后续请求包括检索到的对内容的第一请求的第一参数。该方法还可以包括由计算设备响应于对内容的后续请求来接收后续内容项。该方法还可以包括由计算设备将后续内容项存储在特定于应用的本地高速缓存结构中。该方法还可以包括由计算设备发送对内容的第二请求以在应用的环境内显示,对内容的第二请求包括用于确定要显示的第二内容项的第二参数。该方法还可以包括由计算设备响应于第二请求从本地高速缓存结构检索后续内容项。该方法还可以包括由计算设备响应于第二请求,在计算设备上的应用环境内,例如在第二内容槽中显示后续内容项。在一些实现中,第一参数包括计算设备的位置或计算设备使用的网络连接类型中的至少一个的指示。
在一些实施方式中,响应于计算设备上的第一内容项的显示结束,发送对内容的后续请求。在一些实施方式中,响应于计算设备上的第一内容项的显示结束,删除第一内容项。在一些实施方式中,后续内容项被指定了到期时间,并且只要后续内容项尚未到期,就从本地高速缓存结构检索后续内容项并显示后续内容项。在一些实施方式中,到期时间可由用户配置。在一些实施方式中,第一内容项与后续内容项不同。
在一些实施方式中,该方法还包括在启动应用时由计算设备向服务器发送对初始内容项的初始请求,对初始内容项的初始请求包括由服务器用于确定初始内容项的初始参数。该方法可以还包括由计算设备从服务器接收初始内容项。该方法还可以包括由计算设备在本地高速缓存结构中存储的初始内容项。该方法还可以包括响应于在启动应用之后显示内容的初始请求由计算设备从本地高速缓存结构中检索初始内容项。该方法还可以包括由计算设备在计算设备上的应用的环境内的显示初始内容项。
在一些实施方式中,在应用关闭时保持本地高速缓存结构。在一些实施方式中,本地高速缓存结构包括多个高速缓存,该多个高速缓存根据由应用递送到服务器的对内容项的请求中包括的参数而被分类,并且其中后续内容项被存储在多个高速缓存中的根据对内容的后续请求中包括的第一参数而被分类的一个高速缓存中。在一些实施方式中,本地高速缓存结构仅包括一个本地高速缓存。
在一些实施方式中,本地高速缓存结构被持久保存在计算设备上使得存储在本地高速缓存结构中的内容项在重新启动应用之后可应用于应用。在一些实施方式中,应用被配置为支持在显示页面上的多个内容项的显示,每个内容项通过内容项槽显示,并且每个内容项槽被指定单独的本地高速缓存结构。
至少一个方面涉及一种用于预取用于由在客户端计算设备上运行的应用程序显示的内容项(例如,动态加载的内容项)的系统。该系统可以包括处理器和耦合到该处理器的存储器。存储器可以存储计算机可运行指令,当由处理器运行时,该指令使得处理器发送对内容的第一请求以在应用程序的环境中显示,对内容的第一请求包括用于确定用于显示的第一内容项的第一参数。当由处理器运行时,计算机可运行指令可以进一步使得处理器将第一参数存储在相关联的存储元件中。当由处理器运行时,计算机可运行指令可以进一步使得处理器接收第一内容项。当由处理器运行时,计算机可运行指令可以进一步使得处理器在计算设备上运行的应用程序的环境中,例如在第一内容槽中显示第一内容项。当由处理器运行时,计算机可运行指令可以进一步使得处理器响应于显示第一内容项而从存储元件检索对内容的第一请求的第一参数。当由处理器运行时,计算机可运行指令可以进一步使得处理器发送对内容的后续请求,后续请求包括检索到的对内容的第一请求的第一参数。当由处理器运行时,计算机可运行指令可以进一步使得处理器响应于内容的后续请求而接收后续内容项。当由处理器运行时,计算机可运行指令可以进一步使得处理器将后续内容项存储在特定于应用的本地高速缓存结构中。当由处理器运行时,计算机可运行指令可以进一步使得处理器发送对内容的第二请求以在应用程序的环境中显示。对第二内容请求可以包括用于确定要显示的第二内容项的第二参数。当由处理器运行时,计算机可运行指令可以进一步使得处理器响应于第二请求从本地高速缓存结构检索后续内容项。当由处理器运行时,计算机可运行指令可以进一步使得处理器响应于第二请求,在计算设备上的应用的环境内,例如在第二内容槽中显示后续内容项。
以下详细描述这些以及其他方面和实施方式。前述信息和以下详细描述包括各个方面和实施方式的说明性示例,并且提供用于理解要求的方面和实施方式的性质和特性的概述或框架。附图提供对各个方面和实施方式的说明和进一步理解,并且合并在本说明书中并构成本说明书的一部分。应当理解,方面和实施方式可以被组合,并且在一个方面和实施方式的情况下描述的特征可以在其他方面的情况下实施。
附图说明
附图不旨在按比例绘制的。各个附图中的相同的附图标记和命名指示相同的元素。为了清楚的目的,并非每个组件都可以在每个附图中标记。在附图中:
图1是描绘根据一些实施例的用于预取用于显示的内容项的环境的示例的框图。
图2是描绘根据一些实施例的用于预取用于显示的内容项的示例的框图。
图3是示出根据一些实施例的预取用于在客户端设备处的信息资源中显示的内容项的过程的序列图。
图4是描绘根据一些实施例的用于预取用于显示的内容项的方法的流程图。
图5是描绘用于计算机系统的一般体系架构的说明性示例的框图,该计算机系统可用于实现本文描述的系统和方法的元素。
具体实施方式
以下是用于预取用于由在计算设备上运行的应用显示的内容项的方法、装置和系统有关的各种概念和实施例的更详细描述。上面引入的并将在下面更详细讨论的各种概念可以以多种方式中的任何一种来实施,因为所描述的概念不限于任何特定实施方式。
本公开涉及用于在计算设备上运行的应用的显示页面内的动态加载的内容项的低延迟显示的技术。具体地,本公开涉及用于通过以下操作来预取用于在计算设备上运行的应用的内容槽中显示的内容项的技术:使应用使用先前内容槽的请求参数来预取用于内容槽的内容;将预取的内容存储在应用的本地高速缓存中,以及响应于将内容插入内容槽中的指示从本地高速缓存中检索预取的内容。在一些实施方式中,内容槽包括计算机可运行代码。
在便携式计算设备上运行的移动应用内,动态加载的内容项(诸如图像、视频或其他可显示内容)典型地嵌入在显示页面内,以实现与应用的显示页面上的其他内容项(例如,新闻供应源(feed)中显示的本机内容项、以及应用的交互式用户接口(userinterface)部分等)一致的某个外观和感觉。在其他示例中,可以在用户正在使用应用时在逻辑中断处插入动态加载的内容项,并且该动态加载的内容项可以接管整个屏幕或覆盖应用的常规用户接口。在任何这些情中,重要的是以尽可能小的延迟呈现内容项。例如,当用户导航到尚未加载内容项的供应源的不同部分时,应该尽可能快地呈现内容项以避免对用户体验的任何不利影响。这同样适用于当显示空白屏幕部分一段时间时可能因其而发生破坏用户体验的重叠或间隙内容项。由于存在慢速和高延迟数据连接(例如,对于移动低功率设备)技术限制,因此使得在移动通信设备上快速呈现动态加载的数据项具有挑战性。
因此,本公开的技术问题是提供用于减少在移动计算设备上运行的应用内的动态加载的内容项的显示的延迟或等待时间的技术。
本公开通过在第一内容项结束显示之后或在第一内容项已经呈现之后请求第二内容项来解决这些挑战,使得第二内容项可以在移动设备处被本地高速缓存,以便在需要时快速检索和渲染。在请求第二内容项时,与对第一内容项的请求相关联的参数(例如,位置、一天中的时间、设备是否经由蜂窝网络或经由WiFi连接、与先前内容槽相关联的参数等)在请求第二内容项时重复。当应用稍后确定对内容项的需要时(例如,响应于检测到应用中的内容槽),应用可以检索本地高速缓存的第二内容项,而不是经历相对长的从内容服务器请求第二内容项的过程。
图1是描绘用于预取用于由在计算设备上运行的应用显示的内容项的环境的一种实施方式的框图。环境100包括至少一个数据处理系统110。数据处理系统110可以包括至少一个处理器(或处理电路)和存储器。存储器存储处理器可运行指令,当处理器可运行指令在处理器上运行时,处理器可运行指令使处理器执行本文描述的一个或多个操作。处理器可以包括微处理器、专用集成电路(Application-Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)等,或其组合。存储器可以包括但不限于电子、光学、磁性或能够向处理器提供程序指令的任何其他存储或传输设备。存储器还可以包括软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random-Access Memory,RAM)、电可擦除ROM(Electrically-Erasable ROM,EEPROM)、可擦除-可编程ROM(Erasable-ProgrammableROM,EPROM)、快闪存储器、光学介质或处理器可以从中读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码。数据处理系统110可以包括可以执行各种功能的一个或多个计算设备或服务器。在一些实施方式中,数据处理系统110可以包括被配置为主持(host)内容的选择的内容选择系统。在一些实施方式中,数据处理系统110不包括内容选择系统,而是被配置为经由网络105与内容选择系统通信。
网络105可以包括计算机网络,诸如互联网,本地、广域、城域网或其他区域网络,内联网,卫星网络,诸如语音或数据移动电话通信网络的其他计算机网络,以及它们的组合。环境100的数据处理系统110可以经由网络105,例如与至少一个内容提供者计算设备115、至少一个内容发布者计算设备120或至少一个客户端设备125通信。网络105可以是在客户端设备125、数据处理系统110和一个或多个内容源(例如,web服务器、广告服务器等)之间中继信息的任何形式的计算机网络。例如,网络105可以包括互联网和/或其他类型的数据网络,诸如局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、蜂窝网络、卫星网络或其他类型的数据网络。网络105还可以包括被配置为在网络105内接收和/或发送数据的任何数量的计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络105还可以包括任意数量的硬连线和/或无线连接。例如,客户端设备125可以无线地(例如,经由WiFi、蜂窝、无线电等)与硬连线(例如,经由光纤电缆、CAT5电缆等)到网络105中的其他计算设备的收发器通信。
内容提供者计算设备115可以包括由内容提供者实体操作的服务器或其他计算设备,以提供诸如用于在客户端设备125处的信息资源上显示的内容的内容项。由内容提供者计算设备115提供的内容可以包括用于在信息资源(诸如包括主要内容(例如由内容发布者计算设备120提供的内容)的网站或网页)上显示的第三方内容项或创意(creative)。内容项也可以显示在搜索结果网页上。例如,内容提供者计算设备115可以提供或是用于在内容网页(诸如由公司提供网页的主要内容的公司的网页)的内容槽中显示的或者用于在由搜索引擎提供的搜索结果登录页面上显示的其他内容项的源,或者在信息供应源中。与内容提供者计算设备115相关联的内容项可以显示在除网页之外的信息资源上,诸如作为在智能电话或其他客户端设备125上的应用(诸如游戏应用、全球定位系统(GlobalPositioning System,GPS)或地图应用或其他类型的应用)的运行的部分而显示的内容。
内容发布者计算设备120可以包括由内容发布实体操作的服务器或其他计算设备,以经由网络105提供用于显示的主要内容。例如,内容发布者计算设备120可以包括提供用于在网页上显示的主要内容的网页运营商(operator)。主要内容可以包括除由内容发布者计算设备120提供的内容之外的内容,并且网页可以包括被配置用于来自内容提供者计算设备115的第三方内容项的显示的内容槽。例如,内容发布者计算设备120可以操作公司的网站,并且可以提供关于该公司的内容以在网站的网页上显示。网页可以包括被配置用于诸如内容提供者计算设备115的广告的第三方内容项的显示的内容槽。在一些实施方式中,内容发布者计算设备120包括操作搜索引擎网站的搜索引擎运营商的搜索引擎计算设备(例如,服务器)。搜索引擎网页的主要内容(例如,结果或登陆网页)可以包括搜索的结果以及在内容槽中显示的第三方内容项(例如来自内容提供者计算设备115的内容项)。在一些实施方式中。内容发布者计算设备120可以包括用于服务视频内容的服务器。
客户端设备125可以包括被配置为经由网络105通信以显示诸如由内容发布者计算设备120提供的内容(例如,主要网页内容或其他信息资源)和由内容提供者计算设备115的内容(例如,被配置用于在网页的内容槽中显示的第三方内容项)的计算设备。客户端设备125、内容提供者计算设备115和内容发布者计算设备120可以包括台式计算机、膝上型计算机、平板计算机、智能电话、个人数字助理,移动设备、消费者计算设备、服务器、客户端、数字视频记录器、用于电视的机顶盒、视频游戏控制台或被配置为经由网络105通信的任何其他计算设备。客户端设备125可以是通信设备,终端用户可以通过该通信设备提交对接收内容的请求。请求可以是对搜索引擎的请求,并且请求可以包括搜索查询。在一些实施方式中,请求可以包括对访问网页的请求。
内容提供者计算设备115、内容发布者计算设备120和客户端设备125可以包括处理器和存储器,即处理电路。存储器存储机器指令,当机器指令在处理器上运行时,机器指令使处理器执行本文描述的一个或多个操作。处理器可包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等,或其组合。存储器可以包括但不限于电子、光学、磁性或能够向处理器提供程序指令的任何其他存储或传输设备。存储器还可以包括软盘,CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除ROM(EEPROM)、可擦除-可编程ROM(EPROM)、快闪存储器、光学介质或处理器可从中读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码。
内容提供者计算设备115、内容发布者计算设备120和客户端设备125还可以包括一个或多个用户接口设备。通常,用户接口设备是指通过生成感官信息(例如,显示器上的可视化、一个或多个声音等)向用户传达数据和/或将从用户接收的感官信息转换为电信号的任何电子设备(例如,键盘、鼠标、指示设备、触摸屏显示器、麦克风等)。根据各种实施例,一个或多个用户接口设备可以在内容提供者计算设备115、内容发布者计算设备120和客户端设备125的外壳内部(例如,内置显示器、麦克风等)或者在内容提供者计算设备115、内容发布者计算设备120和客户端设备125的外壳外部(例如,连接到用户计算设备115的监视器、连接到用户计算设备115的扬声器等)。例如,内容提供者计算设备115、内容发布者计算设备120和客户端设备125可以包括电子显示器,电子显示器使用经由网络105从一个或多个内容源和/或从数据处理系统接收的网页数据来可视地显示网页。在一些实施方式中,内容放置活动管理器或第三方内容提供者可以经由内容提供者计算设备115与数据处理系统110通信。在一些实施方式中,第三方内容提供者可以经由在内容提供者计算设备115的用户接口设备上显示的用户接口与数据处理系统110通信。
数据处理系统110可包括至少一个服务器。例如,数据处理系统110可以包括位于至少一个数据中心或服务器群中的多个服务器。在一些实施方式中,数据处理系统110可以包括第三方内容放置系统,例如,广告服务器或广告放置系统。数据处理系统110可以包括至少一个内容请求模块130、至少一个内容选择模块135、至少一个脚本提供者模块140和至少一个数据库145。内容请求模块130、内容选择模块135和脚本提供者模块140每个可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、装置或其他逻辑设备(诸如可编程逻辑阵列,被配置为经由网络105与数据库145和其他计算设备(例如,内容提供者计算设备115、内容发布者计算设备120或客户端设备125)通信)。
内容请求模块130、内容选择模块135和脚本提供者模块140可以包括或运行至少一个计算机程序或至少一个脚本。内容请求模块130、内容选择模块135和脚本提供者模块140可以是单独的组件、单个组件或数据处理系统110的部分。内容请求模块130、内容选择模块135和脚本提供者模块140可以包括软件和硬件(诸如被配置为运行一个或多个脚本的一个或多个处理器)的组合。
数据处理系统110还可以包括一个或多个内容存储库或数据库145。数据库145可以本地到数据处理系统110。在一些实施方式中,数据库145可以远程到数据处理系统110但是可以经由网络105与数据处理系统110通信。数据库145可以包括网页、网页的部分、第三方内容项和预取脚本等,以服务客户端设备125。
预取脚本可以包括计算机可运行指令。计算机可运行指令可以包括脚本,诸如超文本标记语言(HyperText Markup Language,HTML)、可扩展超文本标记语言(ExtensibleHyperText Markup Language,XHTML)、可扩展标记语言(Extensible Markup Language,XML)、级联样式表(Cascading Style Sheet,CSS)和JavaScript等。计算机可运行指令可以在客户端设备125的应用内运行,诸如使得客户端设备125发送由内容请求模块130接收的对内容的请求的应用。应用可以包括例如互联网浏览器、移动应用、游戏应用、GPS应用或能够读取和运行计算机可运行指令的任何其他计算机程序。
在一些实施方式中,预取脚本被配置为使客户端设备125从数据处理系统110预取用于在客户端设备125处本地存储的内容项以便后续使用。例如,预取脚本可以使客户端设备125在客户端设备上创建一个或多个本地高速缓存。预取脚本可以使客户端设备125生成一个或多个对内容的请求。预取脚本可以使客户端设备125响应于对内容的请求而接收内容,并将所接收的内容存储在所生成的本地高速缓存中。预取脚本可以使客户端设备125响应于标识应用中的内容槽,生成对内容的后续请求,并从本地高速缓存中检索用于插入内容槽的内容项。在一些实施方式中,存储在本地高速缓存中的内容项被存储以服务于后续内容槽。
在一些实施方式中,预取脚本可以包括计算机可运行指令,当计算机可运行指令由客户端设备125的处理器运行时,计算机可运行指令可以使客户端设备的应用:(a)发送对内容的第一请求以在应用的环境内显示,对内容的第一请求包括用于确定用于显示的第一内容项的第一参数,(b)在相关联的存储元件中存储第一参数,(c)接收第一内容项,(d)在计算设备上运行的应用的环境内显示第一内容项,(e)响应于显示第一内容项,从存储器元件检索对内容的第一请求的第一参数,(f)发送对内容的后续请求,该后续请求包括检索到的对内容的第一请求的第一参数,(g)响应对内容的后续请求接收后续内容项,(h)将后续内容项存储在针对应用的本地高速缓存结构中,(i)发送对内容的第二请求以在应用的环境内显示,对内容的第二请求可以包括用于确定用于显示的第二内容项的第二参数,(j)响应于第二请求,从本地高速缓存结构中检索后续内容项,以及(k)响应于第二请求,在计算设备上的应用的环境内显示后续内容项。本文关于图2、图3和图4进一步提供与预取脚本有关的附加细节。图2中示出了与预取脚本有关的系统的一个示例。
内容请求模块130可以从客户端设备125接收对内容的请求。对内容的请求可以包括对信息资源的请求、对一个或多个第三方内容项的请求、对脚本的请求(例如,预取脚本)或其组合。在一些实施方式中,对内容的请求可以包括对第三方内容的请求。在一些实施方式中,对第三方内容的请求可以包括将要在其上显示第三方内容的信息资源的地址或标识符。对第三方内容的请求还可以包括或标识可以由数据处理系统110使用的一个或多个参数,以确定响应于对内容的请求而提供的内容。例如,参数可以标识在其内插入所请求的内容的内容槽的大小。参数可以标识与信息资源相关联的内容的类型、所请求的第三方内容的类型(例如,文本、图像、视频等)、客户端设备信息、所请求的第三方内容项的大小信息、与客户端设备125相关联的网络类型(例如,蜂窝网络、WiFi等)、与客户端设备125处的应用相关联的应用ID、与应用ID相关联的属性(例如,设备设置、客户端设备的类型等)、客户端设备125的当前或过去位置、或其组合。在一些实施方式中,请求可以标识诸如预取脚本的脚本。
在一些实施方式中,对内容的请求可以包括对信息资源的请求。对信息资源的请求可以包括信息资源的地址或标识符。例如,对信息资源的请求可以包括诸如网页(例如,“http://www.example.com”)的特定资源的URL。对信息资源的请求还可以包括客户端设备信息(诸如设备类型、设备标识符或其组合)。
内容选择模块135可以被配置为响应于接收到的内容请求,确定要发送到客户端设备125的内容。内容选择模块135可以基于对内容的请求中包括的信息或参数来确定要发送到客户端设备125的内容。例如,在接收到对信息资源的请求时,内容选择模块135可以使用对内容的请求中的信息资源的地址或标识符来确定要发送到客户端设备的内容。在接收对一个或多个第三方内容项的请求的情况下,内容选择模块135可以基于第三方内容将在其上呈现的信息资源的地址或标识符、信息资源的内容类型信息(例如,体育、新闻、音乐、电影、旅行等)、(一个或多个)第三方内容项将在其内显示的(一个或多个)槽的大小信息、客户端设备信息(例如,设备类型、设备标识符、设备位置等)、与信息资源相关联的内容的类型、所请求的第三方内容的类型(例如,文本、图像、视频等)、与客户端设备125相关联的网络类型(例如,蜂窝网络、WiFi等)、与客户端设备125处的应用相关联的用户ID、与客户端ID相关联的属性(例如,设备设置,客户端设备的类型等)、客户端设备125的当前或过去位置、或其组合来选择(一个或多个)第三方内容项。在一些实施方式中,内容选择模块135可以与内容选择系统通信,并提供包括在从客户端设备接收的、对第三方内容的请求中的内容选择系统信息。响应于提供包括在对第三方内容的请求中的信息,内容选择模块135还可以从内容选择系统接收一个或多个第三方内容项。在一些实施方式中,内容选择模块135可以访问数据库145并检索内容以便发送到客户端设备125。
在一些实施方式中,内容选择模块135可以被配置为响应于对内容的请求,确定是否要将脚本递送到客户端设备125。内容选择模块135可以基于对内容的请求的类型(例如,对信息资源的请求、对第三方内容的请求或对预取脚本的请求)、对内容的请求中的指示符(例如,指示预取脚本的指示符)、对内容的请求中的信息资源标识符或其组合,确定是否要将脚本发送到客户端设备125。
在一些实施方式中,对内容的请求可以包括对内容的请求。响应于检测到包括请求内容的指令的内容槽,可以在客户端设备处生成对内容的请求。对内容的请求可以包括标识符。在一些实施方式中,设备标识符对于特定应用可以是唯一的,并且因此可以是指定到安装在特定客户端设备上的特定应用的唯一标识符。在一些实施方式中,标识符可以是唯一地标识从其接收请求的计算设备的设备标识符。
在一些实施方式中,内容选择模块135可以接收对包括标识符内容的请求并确定是否使用标识符递送预取脚本。内容选择模块135可以保持包括已经接收到预取脚本的应用或设备的信息的数据库。内容选择模块135可以使用包括在请求中的标识符,并使用标识符在数据库中执行查找,以确定应用或设备先前是否已经接收到预取脚本。响应于将预取脚本发送到在其上正在运行应用的客户端设备,内容选择模块135或脚本提供者模块140可以更新数据库,以更新已经接收到预取脚本的应用或设备的信息。
在确定要将脚本发送到客户端设备125时,内容选择模块135可以将对内容的请求或向客户端设备提供预取脚本的指示转发到脚本提供商模块140。在一些实施方式中,内容选择模块135可以选择第三方内容项以与脚本(例如预取脚本)一起递送到客户端设备125。
脚本提供者模块140可以被配置为接收提供预取脚本的指示并将预取脚本发送到客户端设备125(或者用于发送到客户端设备125的另一实体)。脚本提供者模块140可以将预取脚本保持在存储器元件中。脚本提供者模块140可以确定从其接收到请求的客户端设备和/或应用,以选择要提供到客户端设备的预取脚本的兼容版本。在一些实施方式中,预取脚本可以针对特定应用,或者可以针对在客户端设备上运行的特定操作系统。脚本提供者模块140可以基于要向其递送预取脚本的应用和/或客户端设备来选择适当的预取脚本。
在一些实施方式中,预取脚本可以单独地或与第三方内容项一起被发送到客户端设备125。例如,脚本提供者模块140、内容选择模块135或数据处理系统110的另一实体可以在将第三方内容项递送到客户端设备125之前将预取脚本包括到第三方内容项中。在一些实施方式中,脚本提供者模块140、内容选择模块135或数据处理系统110的另一实体可以将预取脚本与所请求的信息资源一起递送到客户端设备125。
图2是描绘根据一些实施方式的用于预取内容的系统200的示例的框图。系统200可以包括应用205、信息资源210、应用启动检测模块225、请求生成模块230、本地高速缓存管理模块235和内容项管理模块240。在一些实施方式中,应用启动检测模块225、请求生成模块230、本地高速缓存管理模块235和内容项管理模块240可以是预取脚本220内的模块。在一些实施方式中,包括应用启动检测模块225、请求生成模块230、本地高速缓存管理模块235和内容项管理模块240的预取脚本220可以是内容管理模块215内的模块。内容管理模块215可以是应用205内可以专用于由数据处理系统110供应的用于运行应用205中的指令以使客户端设备125执行如本文描述的操作的脚本、模块、子模块等的模块。
在一些实施方式中,客户端设备125的预取脚本220由数据处理系统110的脚本提供者模块140提供。响应于数据处理系统110从客户端设备125接收到对内容的请求,预取脚本220可以被提供到客户端设备125。在一些实施方式中,数据处理系统110确定客户端设备125是否包括预取脚本220。例如,数据处理系统110可以在数据处理系统110处存储的数据结构(例如,表)处执行对包括在对内容的请求中的客户端设备125的标识符的查找。作为另一示例,数据处理系统110可以检测或扫描对内容的请求中包括的指示预取脚本220是否存在于客户端设备125的标志或其他指示符。
预取脚本220可以由计算设备的一个或多个处理器执行或以其他方式运行,诸如下面在图5中描述的那些处理器。在一些实施方式中,应用启动检测模块225、请求生成模块230、本地高速缓存管理模块235和内容项管理模块240中的任何可以是应用205、内容管理模块215、信息资源210或预取脚本220的部分。
应用205可以包括,例如,互联网浏览器、移动应用、游戏应用、GPS应用、或者能够运行或以其他方式调用计算机可运行指令(诸如包括在信息资源210、应用启动检测模块225、请求生成模块230、本地高速缓存管理模块235和内容项管理模块240中的计算机可运行指令)的任何其他计算机程序。应用205可以从主持信息的服务器(诸如内容发布者120的服务器、内容提供者115的服务器或数据处理系统110的服务器)获得或接收信息资源210。例如,应用205可以向服务器递送包括信息资源210的地址或标识符的请求,并且作为响应,接收信息资源210。在一些实施方式中,应用205可以包括在客户端设备上运行的内容发布者的本机应用(native application)。信息资源210可以包括一个或多个内容部分(或内容元素)。信息资源210可以指定一个或多个内容元素的位置。在一些实施方式中,信息资源210可以包括用于主要内容的部分和用于第三方内容或内容项的部分。
现在一起参考图1和图2,在一些实施方式中,在客户端设备125上的应用205中运行的应用启动检测模块225可以使客户端设备125向数据处理系统110发送应用205已经在客户端设备125上启动的指示。在一些实施方式中,预取脚本220可以包括使应用205在应用205启动时运行例程的指令。例程可以包括向应用启动检测模块225提供应用205已经启动的指示的一组指令。因此,相应地,应用启动检测模块225可以使客户端设备125将应用205已经启动的指示发送到数据处理系统110。
在一些实施方式中,在客户端设备125上运行的请求生成模块230可以使客户端设备125生成要发送到数据处理系统110的、对内容的请求。在一些实施方式中,在客户端设备125上运行的本地高速缓存管理模块235可以使客户端设备125生成、删除、修改或以其他方式保持与应用205相关联的一个或多个本地高速缓存245a、245b、245c。本地高速缓存245a、245b、245c可以被配置为存储本地到客户端设备125的、从数据处理系统110检索的一个或多个内容项。
在一些实施方式中,在客户端设备125上运行的本地高速缓存管理模块235可以使客户端设备125创建与应用205相关联的本地高速缓存245a。本地高速缓存245a可以是客户端设备125处的、指定用于与应用205结合使用的、并且被配置为存储(例如,临时地)从数据处理系统110接收的一个或多个内容项的存储元件。在一些实施方式中,响应于由应用到数据处理系统110的、对内容的请求而创建本地高速缓存245a。本地高速缓存管理模块235可以使客户端设备125通过运行例程来创建本地高速缓存145a,使得可以在客户端设备125的存储器元件中创建本地高速缓存245a。例程可以指导客户端设备125的操作系统创建本地高速缓存245a。例如,高速缓存管理模块235可以使客户端设备125为本地高速缓存245a指定预定量的存储器。预定量的存储器可以由本地高速缓存管理模块235指定,并且可以由数据处理系统110经由对预取脚本220的代码的定期更新来调整。在一些实施方式中,本地高速缓存管理模块235可以使客户端设备125取决于创建时的参数来改变每个创建的本地高速缓存的配置。例如,如果本地高速缓存245a将要存储视频的内容项,则本地高速缓存管理模块235可以使客户端设备125向本地高速缓存245a指定比如果本地高速缓存245a将存储静态图像更多的存储器。
响应于使客户端设备125创建本地高速缓存245a,客户端设备125可以向本地高速缓存管理模块235递送指示所创建的本地高速缓存245a的本地位置的信息,使得应用205可以随后访问本地高速缓存245a。在一些实施方式中,本地高速缓存245a是持久的,使得当应用205被关闭时,本地高速缓存245a和存储在其中的内容被保持在由客户端设备125指定给本地高速缓存245a的存储器元件中。
因此,在客户端设备125上运行的本地高速缓存管理模块235可以使客户端设备125基于与对内容的请求相关联的参数将配置指定到本地高速缓存245a。例如,在生成对内容的、包括一个或多个参数(例如,内容槽ID的值)的请求时,本地高速缓存管理模块235可以使客户端设备125基于请求的参数来构建和配置高速缓存(例如,具有包括内容槽ID的值的配置的本地高速缓存,使得后续接收的、包括内容槽ID的内容项可以被存储在配置有相同的内容槽ID的本地高速缓存中)。
本地高速缓存245a的配置可以确定要存储在本地高速缓存245a中用于随后由应用205显示的内容的类型和分类。例如,如果对内容的请求包括特定的内容槽的标识符,其中应用205在该内容槽中显示内容项,则本地高速缓存管理模块235可以使客户端设备125创建与在对内容的请求中标识的特定的内容槽相对应的本地高速缓存。这样,当应用205随后检测到特定的内容槽时,内容项管理模块240可以使客户端设备125访问存储在与特定内容槽相对应的本地高速缓存中的内容项并检索要在特定的内容槽中显示得预取的内容项。因此,应用205可以与多个本地高速缓存(例如,本地高速缓存245a、245b和245c)相关联,其中每个本地高速缓存包括控制要被存储在本地高速缓存中的内容的类型的不同的配置(例如,应用205的不同的内容槽标识符可以是不同的本地高速缓存的不同的配置)。例如,第一本地高速缓存245a可以被配置为存储要服务于与包括第一内容槽的标识符的第一类型的内容槽匹配的内容槽的内容项,以及第二本地高速缓存245b可以被配置为存储要服务于与包括第一内容槽的标识符的第二类型的内容槽匹配的内容槽的内容项,并且与第一内容槽兼容的内容项被存储在第一本地高速缓存中以及与第二内容槽兼容的内容项被存储在第二本地高速缓存中。
在一些实施方式中,除了上面讨论的内容槽标识符之外,与本地高速缓存245a相关联的配置可以是包括在对内容的请求中的任何参数。例如,配置可以包括请求参数,诸如但不限于客户端设备连接到的网络类型(例如,蜂窝网络、WiFi网络等)、客户端设备125的特性(例如,设备设置、客户端设备的类型等)、与对内容的请求相关联的关键字或主题(例如,体育、政治、技术等)、客户端设备125的当前或过去位置、应用205的不同的部分的(例如,使得内容项可以在不同的部分处无缝地集成到应用中的)文本和可视内容等。
在一些实施方式中,在创建本地高速缓存245a、245b、245c时,客户端设备125可以递送每个本地高速缓存245a、245b、245c的位置信息,使得内容项管理模块240可以使客户端设备125访问或以其他方式管理本地高速缓存245a、245b、245c。例如,在客户端设备125上运行的内容项管理模块240可以使客户端设备125从本地高速缓存245a、245b、245c检索内容项。在客户端设备125上运行的内容项管理模块240可以使客户端设备125删除存储在本地高速缓存245a、245b、245c中的内容项。在客户端设备125上运行的内容项管理模块240可以使客户端设备125确定何时(例如,响应于检测到应用205中的内容槽)检索和显示。
在一些实施方式中,代替多个本地高速缓存,本地高速缓存管理模块235和内容项管理模块240可以使客户端设备125创建和管理单个本地高速缓存。内容项管理模块240可以使客户端设备125访问存储在单个本地高速缓存中的、用于显示的一个或多个内容项。在一些实施方式中,单个本地高速缓存被配置为存储各种内容项,而不管与内容项相关联的参数(例如,单个本地高速缓存是通用本地高速缓存)。
在一些实施方式中,单个本地高速缓存被配置为基于先前的请求的参数来存储内容项。例如,单个本地高速缓存可以包括与先前对内容的请求的参数相对应的配置,并且内容项管理模块240可以使得客户端设备125在从单个本地高速缓存检索内容项之后删除单个本地高速缓存。因此,本地高速缓存管理模块235可以随后使客户端设备125基于新的对内容的请求的参数创建新的单个本地高速缓存以替换先前的单个本地高速缓存。这样,通过在适当时创建和删除本地高速缓存,可以节省客户端设备125处的本地存储器。
以下呈现关于应用启动检测模块225、请求生成模块230、本地高速缓存管理模块235、内容项管理模块240和本地高速缓存245a、245b、245c的进一步细节。
图3是示出根据一些实施例的预取用于在应用205正在其上运行或执行的客户端设备125处的信息资源中显示的内容项的过程的序列图。应用205被示出为具有相关联的本地高速缓存245a,并且响应于下面描述的事件,在阶段A-F中描绘应用205和本地高速缓存245a的各种状态。
在一些实施方式中,应用205可以在阶段A在客户端设备125上启动并执行。响应于应用205的启动,在客户端设备125上的应用205中运行的应用启动检测模块225可以使客户端设备125发送在客户端设备125上应用205已经启动的指示。在一些实施方式中,响应于接收到启动的指示,内容选择模块135可以使客户端设备125发送要本地存储在客户端设备125处(例如,在本地高速缓存245a、245b、245c中的一个或多个中)用于随后在应用205中显示一个或多个初始内容项。在一些实施方式中,与初始内容项相关联的参数可以基于客户端设备125的应用205做出的先前的请求的参数。例如,与初始内容项相关联的参数可以与在应用205最后关闭之前由应用205递送的最终内容项请求的参数相对应。与初始内容项相关联的参数可以基于其他或附加参数,例如但不限于做出请求的客户端设备的类型、服务客户端设备的网络的类型、客户端的最后已知位置、一天中的时间等。
在阶段A,客户端设备125可以已经包括先前创建的用于存储内容项的本地高速缓存245a。在一些实施方式中,在客户端设备125上运行的请求生成模块230可以使客户端设备125生成对内容的第一请求并经由网络105将其发送到数据处理系统110的内容请求模块130。在一些实施方式中,对内容125的第一请求包括指示要由客户端设备125接收的内容项的类型的一个或多个参数。对内容的第一请求301的参数可以标识要在其内插入请求的内容的内容槽的大小。参数还可以标识与信息资源相关联的内容的类型、所请求的第三方内容的类型(例如,文本、图像、视频等)、客户端设备信息、所请求的第三方内容项的大小信息、与客户端设备125相关联的网络类型(例如,蜂窝网络、WiFi等)、与客户端设备125处的应用相关联的应用ID、与应用ID相关联的属性(例如,设备设置、客户端设备的类型等)、客户端设备125的当前或过去位置、或其组合。
响应于对内容的第一请求301,数据处理系统110的内容选择模块135使用在对第一内容的请求301中接收的参数来选择第一内容项302并将第一内容项302发送到客户端设备115。第一内容项302可以本地存储在本地高速缓存245a中,以便应用205随后检索。例如,应用205可以包括被配置为使客户端设备125接收第一内容项302,以及(例如,通过将对内容的第一请求301的请求标识符与包括在第一内容项302中的响应标识符匹配,或者通过将对内容的第一请求301的内容槽标识符与包括在第一内容302中的内容槽标识符匹配)标识第一内容项302匹配对内容的第一请求301的指令。例如,在递送对内容的第一请求301时,请求生成模块230可以使客户端设备125在请求中包括为其生成对内容的请求301的内容槽的内容槽标识符。相应地,内容项管理模块240可以使客户端设备125确定所接收的第一内容项302的内容槽标识符,并且可以将该标识符与为该特定内容槽标识符配置的本地高速缓存的配置匹配。一旦匹配,内容项管理模块240可以使客户端设备125将所接收的第一内容项302存储在具有匹配内容槽标识符的本地高速缓存中。在一些实施方式中,对内容的请求的、包括发送到客户端设备的内容项的响应可以包括客户端设备或内容项管理模块240可以用于确定在其中存储内容项的本地高速缓存的一些标识数据。在一些实施方式中,客户端设备可以被配置为在对内容的请求中包括本地高速缓存标识符,该本地高速缓存标识符标识在其中存储内容项的本地高速缓存。这样,数据处理系统110可以在响应中包括本地高速缓存标识符,使得内容项管理模块240可以将内容项路由到与本地高速缓存标识符相对应的本地高速缓存以便存储。在一些实施方式中,响应可以标识响应所对应的请求,并且内容项管理模块240可以根据内容项管理策略根据请求确定应该将内容项存储到的本地高速缓存。
在阶段B,客户端设备125的本地高速缓存245a存储第一内容项302以便由应用205检索。在一些实施方式中,本地高速缓存245a被配置为在客户端设备125上运行本地高速缓存管理模块235使客户端设备125删除本地高速缓存245a中的第一内容项302之前将第一内容项302存储预定的持续时间。在一些实施方式中,预定的持续时间可根据期望配置,并且可以例如被设置为20分钟。例如,预定的持续时间可以基于在客户端设备125上运行的本地高速缓存管理模块235使客户端设备125归属于存储在本地高速缓存245a中的第一内容项302的新鲜度(freshness)分数。在一些实施方式中,分数可以基于时间(例如,第一内容项302存储在本地高速缓存245a中的时间越长,新鲜度分数就越低),基于第一内容项302包括的数据类型,例如,本地高速缓存的内容项的新鲜度分数的降低率可以基于第一内容项302包括的数据的类型而不同(例如,天气信息可以被允许被存储在本地高速缓存245a相对更多的时间,而股票价格信息由于股票的波动性而可以允许被存储相对较少的时间)。在一些实施方式中,在客户端设备125上运行的本地高速缓存管理模块235通过将第一内容项目302的新鲜度分数与存储在客户端设备125处的阈值进行比较,使得客户端设备125从本地高速缓存245a中删除第一内容项目302。例如,如果新鲜度分数等于或小于阈值,则可以删除第一内容项302。
在一些实施方式中,在客户端设备125上运行的内容管理模块240可以使客户端设备125检测应用205中的第一内容槽310的存在。第一内容槽310可以包括应用205的显示器的位置,应用205被配置为接收要在第一内容槽310内显示的内容项。响应于检测到第一内容槽310,在客户端设备125上运行的内容管理模块240可以使客户端设备125从本地高速缓存245a检索存储的第一内容项302并将第一内容项302插入第一内容槽310,以便由客户端设备125显示。在一些实施方式中,本地高速缓存245a被配置为包括与包括在对内容的第一请求301中的参数(例如,与第一内容槽310的标识符相对应的参数)相对应的配置。因此,在一些实施方式,存储在本地高速缓存245a中的内容项可以是与第一内容槽310兼容的内容项(例如,包括与第一内容槽310的标识符匹配的槽标识符的内容项)。
在阶段C,在一些实施方式中,在客户端设备125上运行的内容管理模块240可以使客户端设备125在第一内容槽310中插入和显示存储在本地高速缓存245a中的第一内容项302。在一些实施方式中,在第一内容项302在第一内容槽310中显示时或者响应于第一内容项302在第一内容槽310中显示,在客户端设备125上运行的内容管理模块240可以使客户端设备125从本地高速缓存245a中删除第一内容项302。此外,在一些实施方式中,在第一内容项302在第一内容槽310中显示时或者响应于第一内容项302在第一内容槽310中显示,在客户端设备125上运行的内容管理模块240可以使客户端设备125发送对内容的第二请求303或后续请求,其可以类似于上面描述的对内容的第一请求301的发送。在一些实施方式中,响应于第一内容项302在第一内容项槽310处的显示(而不是像常规那样响应于内容项槽的检测)发送对内容的第二请求303。在一些实施方式中,对内容的第二请求303包括与对内容的第一请求301的参数相同或类似的参数,并且因此响应于对内容的第二请求303从数据处理系统110接收的内容项可以具有与第一内容项302类似的特性(例如,类似的主题、类似的视觉特性、类似的大小等)。在一些实施方式中,当客户端设备125将对内容的第一请求301发送到网络105时,客户端设备125可以存储与对内容的第一请求301相关联的一个或多个参数,以便在发送对内容的第二请求303时用于检索并且与对内容的第二请求结合使用。在一些实施方式中,对内容的第一请求301的一个或多个参数可以被存储在客户端设备125处的单独的存储器元件中。
响应于请求,在客户端设备125上运行的内容管理模块240可以使客户端设备125(例如,经由网络105从数据处理系统110)接收第二内容项304。第二内容项304作为在由应用205调用时要被检索的预取内容项被存储在本地高速缓存245a中。因为对内容的第一请求301和对内容的第二请求303包括相同或类似的参数,所以第一内容项302和第二内容项304可以具有类似的特性。例如,第一内容项302和第二内容项304可以与相同的内容槽(例如,内容槽310)兼容,针对类似的主题(例如,体育、政治等),具有相同的大小,针对一种类型的用户(例如,男性、年长、专业的等),其组合等。在一些实施方式中,对内容的请求的参数基于应用的显示器的环境的文本和可视内容,使得第一内容项302和第二内容项304可以无缝地集成到应用205的相同的部分的文本和外观中。
在一些实施方式中,客户端设备125可以一次发送对内容的多个请求,使得多个内容项存储在本地高速缓存245a中。例如,响应于检测到第一内容槽310,客户端设备125可以将多个对内容303的第二请求发送到网络105,并且接收要存储在本地高速缓存245a中的相应的第二内容项304。因此,与客户端设备125在需要内容项时必须通过网络105与数据处理系统110通信相反,在客户端设备125上运行的内容管理模块240可以使客户端设备125预取内容项以便应用205随后使用,使得预取的内容项可以由客户端设备125本地且相对快地访问。因此,可以减少在应用205中显示内容项的延迟。此外,尽管预取内容,但是可以保持内容的相对新鲜度,例如,因为存储在本地高速缓存245a中的内容项可以具有相关联的到期持续时间(例如,20分钟)。
在阶段D,本地高速缓存245a存储第二内容项304,以便由应用205检索。在一些实施方式中,本地高速缓存245a被配置为在在客户端设备125上运行的本地高速缓存管理模块235使客户端设备125删除本地高速缓存245a中的第二内容项304之前将第二内容项304存储预定的持续时间。在一些实施方式中,预定的持续时间可根据期望配置,并且可以例如被设置为20分钟。
在一些实施方式中,在客户端设备125上运行的内容管理模块240可以使客户端设备125检测应用205中第二内容槽320的存在。第二内容槽320可以是不同于在阶段C在其中显示第一内容项302的内容槽的内容槽。响应于检测到第二内容槽320,在客户端设备125上运行的内容管理模块240可以使客户端设备125从本地高速缓存245a检索存储的第二内容项304并且将第二内容项304插入第二内容槽320,以便由客户端设备125显示。
在阶段E,在一些实施方式中,在客户端设备125上运行的内容管理模块240可以使客户端设备125在第二内容槽320中插入和显示存储在本地高速缓存245a中的第二内容项304。在一些实施方式中,在第二内容项304被显示在第二内容槽320中时或者响应于第二内容项304被显示在第二内容槽320中,在客户端设备125上运行的内容管理模块240可以使客户端设备125从本地高速缓存245a中删除第二内容项304。此外,在一些实施方式中,在第二内容项304被显示在第二内容槽320中时或者响应于第二内容项304被显示在第二内容槽320中,在客户端设备125上运行的内容管理模块240可以使客户端设备125发送对内容的后续请求305,其可以类似于上面描述的对内容的第一请求301和对内容的第二请求303的发送。在一些实施方式中,响应于第二内容项304在第二内容项槽320处的显示(而不是如常规那样响应于内容项槽的检测)发送对内容的后续请求305。在一些实施方式中,对内容的后续请求305包括与对内容的第二请求303的参数相同或类似的参数,因此响应于对内容的后续请求305而从数据处理系统110接收的内容项可以与第二内容项304类似。
响应于请求,在客户端设备125上运行的内容管理模块240可以使客户端设备125(例如,经由网络105从数据处理系统110)接收后续内容项306。后续内容项306作为在应用205需要时要检索的预取内容项而被存储在本地高速缓存245a中。因为对内容的第二请求303和对内容的后续请求305可以包括相同或类似的参数,因此第二内容项304和后续内容项306可以具有类似的特性。例如,第二内容项304和后续内容项306两者可以与相同的内容槽兼容(例如,内容槽310),针对类似主题(例如,体育、政治等),具有相同大小,针对一种类型的用户(例如,男性、年长、专业的等),其组合等。
在一些实施方式中,阶段A-E可以重复直到满足终止条件(例如,终止条件可以包括应用205被关闭或删除,或者可以包括应用205内的内容提取特征被禁用)。这样,客户端设备125可以基于先前的请求的参数重复地预取内容,使得可以在与客户端设备125处的参数相对应的本地高速缓存中存储和替换新的预取的内容。因此,当新的内容由应用205请求时,与在检测到内容槽之后经由网络105实时的提取内容相反,客户端设备125可以从本地高速缓存供应内容,从而减少客户端设备125处的延迟。
在阶段F,应用205可以由客户端设备125的用户在任何时间重新启动。在一些实施方式中,本地高速缓存245a、245b、245c是持久的本地高速缓存,其甚至在应用205关闭、结束(closed)或以其他方式不运行之后仍然保持存储在其中的内容项。例如,在阶段E接收后续内容项306并将其存储在本地高速缓存245a中,但是在阶段E之后结束并重新启动应用205。然而,尽管重新启动应用205,但是客户端设备125保持存储在本地高速缓存245a中的后续内容项306,使得后续内容项306可以响应于检测到应用205中的内容槽310而被访问和显示。因此,在一些实施方式中,上面描述的预取内容的方法和系统可以恢复(例如,可以恢复回阶段A)。
图4是描绘根据一些实施方式的预取用于显示的内容的方法400的流程图。简而言之,方法400可以包括客户端设备启动应用(方框405)。方法400可以包括客户端设备发送对内容的第一请求,第一请求包括一个或多个参数(方框410),以及作为响应,数据处理系统接收包括一个或多个第一参数的第一请求(方框415)。方法400可以包括数据处理系统基于第一参数选择第一内容项(方框420)。方法400可以包括数据处理系统将第一内容项发送到客户端设备(方框425),以及客户端设备接收第一内容项并将其存储在本地高速缓存中(方框430)。方法400可以包括客户端设备检测应用中的第一内容槽(方框435),从本地高速缓存中检索第一内容项并显示第一内容项(方框440),以及发送包括一个或多个第二参数的、对内容的第二请求(方框445)。方法400可以包括数据处理系统接收包括第二参数的第二请求(方框450),基于第二参数选择第二内容项(方框455),以及将第二内容项发送到客户端设备(方框460)。方法400可以包括客户端设备接收第二内容项并将其存储在本地高速缓存中(方框465)。方法400可以包括客户端设备检测应用中的第二内容槽(方框470),从本地高速缓存检索第二内容项并显示第二内容项(方框475),以及发送包括一个或多个第三参数的、对内容的第三请求(方框480)。
更详细地,方法400可以包括客户端设备启动应用(方框405)。例如,在启动应用时,在客户端设备上运行的应用启动检测模块可以使客户端设备将应用已经启动的指示发送到数据处理系统。在一些实施方式中,响应于接收到启动的指示,内容选择模块可以使客户端设备发送要本地存储在客户端设备处(例如,在一个或多个本地高速缓存中)的、用于应用中的随后显示的一个或多个初始内容项。在一些实施方式中,与初始内容项相关联的参数可以基于由客户端设备的应用做出的先前的请求的参数。例如,与初始内容项相关联的参数可以与在应用205最后结束之前由应用递送的最终内容项请求的参数相对应。与初始内容项相关联的参数可以基于其他或附加参数,诸如但不限于做出请求的客户端设备的类型、服务客户端设备的网络的类型、客户端的最后已知位置、一天中的时间等。
方法400可以包括客户端设备发送对内容的第一请求,第一请求包括一个或多个参数(方框410),并且作为响应,数据处理系统接收包括一个或多个第一参数的第一请求(方框415)。例如,在客户端设备上运行的请求生成模块可以使客户端设备生成对内容的第一请求并经由网络将其发送到数据处理系统的内容请求模块。在一些实施方式中,对内容的第一请求包括指示要由客户端设备接收的内容项的类型的一个或多个参数。对内容的第一请求的参数可以标识要在其内插入所请求内容的内容槽的大小。参数还可以标识与信息资源相关联的内容的类型、所请求的第三方内容的类型(例如,文本、图像、视频等)、客户端设备信息、所请求的第三方内容项的大小信息、与客户端设备相关联的网络类型(例如,蜂窝网络、WiFi等)、与客户端设备处的应用相关联的应用ID、与应用ID相关联的属性(例如,设备设置、客户端设备的类型等)、客户端设备125的当前或过去位置、或其组合。
方法400可以包括数据处理系统基于第一参数选择第一内容项(方框420)。例如,响应于对内容的第一请求,数据处理系统的内容选择模块使用在对内容的第一请求中接收的参数来选择第一内容项。
方法400可以包括数据处理系统将第一内容项发送到客户端设备(方框425),以及客户端设备接收第一内容项并将第一内容项存储在本地高速缓存中(方框430)。例如,第一内容项然后可以被本地存储在本地高速缓存中,以便由应用随后检索。例如,应用可以包括被配置为使客户端设备接收第一内容项并且(例如,通过将对内容的第一请求的请求标识符与包括在第一内容项中的响应标识符匹配,或者通过将对内容的第一请求的内容槽标识符与第一内容项所包括的内容槽标识符匹配)识别第一内容项与对内容的第一请求匹配的指令。例如,在递送对内容的第一请求时,请求生成模块可以使客户端设备在请求中包括对内容的请求所针对的内容槽的内容槽标识符。相应的,内容项管理模块可以使客户端设备确定所接收的第一内容项的内容槽标识符,以及可以将标识符与为该特定内容槽标识符配置的本地高速缓存的配置匹配。一旦匹配,内容项管理模块可以使客户端设备将所接收的第一内容项存储在具有匹配的内容槽标识符的本地高速缓存中。
第一内容项可以本地存储在本地高速缓存中,以便由客户端设备随后检索。在一些实施方式中,本地高速缓存被配置为在在客户端设备上运行的本地高速缓存管理模块使客户端设备删除本地高速缓存中的第一内容项之前将第一内容项302存储预定的持续时间。在一些实施方式中,预定的持续时间可根据期望配置,并且可以例如被设置为20分钟。例如,预定的持续时间可以基于在客户端设备上运行的本地高速缓存管理模块使客户端设备归属于存储在本地高速缓存中的第一内容项的新鲜度分数。在一些实施方式中,分数可以基于时间(例如,第一内容项存储在本地高速缓存中的时间越长,新鲜度分数越低),基于第一内容项包括的数据的类型,例如,本地高速缓存的内容项的新鲜度分数的降低率可以基于第一内容项包括的数据的类型而不同(天气信息可以被允许被存储在本地高速缓存相对更多的时间,而股票价格信息由于股票的波动性而可以允许被存储相对较少的时间)。在一些实施方式中,在客户端设备上运行的本地高速缓存管理模块通过将第一内容项目的新鲜度分数与存储在客户端设备处的阈值进行比较,使得客户端设备从本地高速缓存中删除第一内容项目。例如,如果新鲜度分数等于或小于阈值,则可以删除第一内容项。
方法400可以包括客户端设备检测应用中的第一内容槽(方框435),从本地高速缓存检索第一内容项和显示第一内容项(方框440),以及发送包括一个或多个第二参数的、对内容的第二请求(方框445)。例如,在客户端设备上运行的内容管理模块可以使客户端设备检测应用中第一内容槽的存在。第一内容槽可以包括应用的显示器内的位置,该应用被配置为接收要在第一内容槽内显示的内容项。响应于检测到第一内容槽,在客户端设备上运行的内容管理模块可以使客户端设备从本地高速缓存检索所存储的第一内容项,以及将第一内容项插入第一内容槽,以便由客户端设备显示。在一些实施方式中,本地高速缓存被配置为包括与包括在对内容的第一请求中的参数(例如,与第一内容槽的标识符相对应的参数)相对应的配置。因此,在一些实施方式中,存储在本地高速缓存中的内容项可以是与第一内容槽兼容的内容项(例如,包括与第一内容槽的标识符匹配的槽标识符的内容项)。
在客户端设备上运行的内容管理模块可以使客户端设备在第一内容槽中插入和显示存储在本地高速缓存中的第一内容项。在一些实施方式中,在第一内容项在第一内容槽中显示时或者响应于第一内容项在第一内容槽中显示,在客户端设备上运行的内容管理模块可以使客户端设备从本地高速缓存中删除第一内容项。此外,在一些实施方式中,在第一内容项在第一内容槽中显示时或者响应于第一内容项在第一内容槽中显示,在客户端设备上运行的内容管理模块可以使客户端设备发送对内容的第二请求,其类似于上面描述的对内容的第一请求的发送。在一些实施方式中,响应于第一内容项在第一内容项槽处的显示(而不是像常规那样响应于内容项槽的检测)发送对内容的第二请求。。
方法400可以包括数据处理系统接收包括第二参数的第二请求(方框450),基于第二参数选择第二内容项(方框455),以及将第二内容项发送到客户端设备(方框460)。在一些实施方式中,对内容的第二请求包括与对内容的第一请求的参数相同或类似的参数,并且因此响应于对内容的第二请求从数据处理系统接收的内容项可具有与第一内容项类似的特性(例如,类似的主题,类似的视觉特性,类似的大小等)。在一些实施方式中,当客户端设备向网络发送对内容的第一请求时,客户端设备可以存储与对内容的第一请求相关联的一个或多个参数,以便在发送对内容的第二请求时用于检索并且与对内容的第二请求结合使用。在一些实施方式中,对内容的第一请求的一个或多个参数可以被存储在客户端设备处的单独的存储器元件中。
方法400可以包括客户端设备接收第二内容项和将其存储在本地高速缓存中(方框465)。响应于请求,在客户端设备上运行的内容管理模块可以使客户端设备(例如,经由网络从数据处理系统)接收第二内容项。第二内容项作为在由应用调用时要被检索的预取内容项被存储在本地高速缓存中。因为对内容的第一请求和对内容的第二请求包括相同或类似的参数,所以第一内容项和第二内容项可以具有类似的特性。例如,第一内容项和第二内容项两者可以与相同的内容槽(例如,内容槽)兼容,针对类似的主题(例如,体育、政治等),具有相同的大小,针对一种类型的用户(例如,男性、年长、专业的等),其组合等。在一些实施方式中,对内容的请求的参数基于应用的显示器的环境的文本和可视内容,使得第一内容项和第二内容项可以无缝地集成到应用的相同的部分的文本和外观中。
方法400可以包括客户端设备检测应用中的第二内容槽(方框470),从本地高速缓存检索第二内容项并显示第二内容项(方框475),以及发送包括一个或多个第三参数的、对内容的第三请求(方框480)。因此,方法400可以继续预取内容项和本地存储用于在客户端设备处显示的内容项的过程,直到满足终止条件。
这样,与客户端设备在需要内容项时必须通过网络与数据处理系统通信相反,方法400提供预取用于客户端设备随后使用的内容项,使得预取的内容项可以由客户端设备本地且相对快地访问。因此,可以减少在客户端设备处显示内容项的延迟。此外,尽管预取内容,但是可以保持内容的相对新鲜度,例如,因为存储在本地高速缓存中的内容项在被删除之前可以具有相关联的到期持续时间(例如,20分钟)。
图5示出了根据一些实施方式的可用于实施本文所讨论的任何计算机系统的说明性计算机系统500的一般架构(包括系统110及其组件(诸如,内容请求模块130、内容选择模块135和脚本提供者模块140和客户端设备125))。计算机系统500可用于经由网络105提供信息以便显示。图5的计算机系统500包括通信地耦合到存储器525的一个或多个处理器520、一个或多个通信接口505、以及一个或多个输出设备510(例如,一个或多个显示单元)和一个或多个输入设备515。处理器520可以被包括在数据处理系统110或系统110的诸如内容请求模块130和内容选择模块135的其他组件中。
在图5的计算机系统500中,存储器525可以包括任何计算机可读存储介质,并且可以存储各自的系统的用于实施本文描述的各种功能的计算机指令(诸如处理器可运行指令),以及由此生成的或经由(一个或多个)通信接口或(一个或多个)输入设备(如果存在)接收的、与其相关的任何数据。再次参考图1的系统110,数据处理系统110可以包括存储器525,以存储与一个或多个内容单元的库存(inventory)的可用性、一个或多个内容单元的预留有关的信息等。存储器525可以包括数据库145。图5中所示的(一个或多个)处理器520可用于运行存储在存储器525中的指令,并且在这样做时,也可以依照指令的运行从存储器读取或向存储器写入处理和/或生成的各种信息。
图5中所示的计算机系统500的处理器520可以通信地耦合到或控制(一个或多个)通信接口505,以依照指令的运行来发送或接收各种信息。例如,(一个或多个)通信接口505可以耦合到有线或无线网络、总线或其他通信装置,并且因此可以允许计算机系统500向其他设备(例如,其他计算机系统)发送信息或从其他设备接收信息。尽管未在图1的系统中明确地示出,但是一个或多个通信接口促进系统500的组件之间的信息流。在一些实施方式中,(一个或多个)通信接口可以(例如,经由各种硬件组件或软件组件)被配置以提供作为访问计算机系统600的至少一些方面的门户的网站。通信接口505的示例包括用户接口(例如,网页),用户可以通过该用户接口与数据处理系统110通信。
可以提供图5中所示的计算机系统500的输出设备510,例如以允许结合指令的运行来查看或以其他方式感知各种信息。可以提供(一个或多个)输入设备515,例如以允许用户在指令的运行期间进行手动调整、做出选择、输入数据或以各种方式中的任何一种与处理器交互。本文还提供了与可用于本文所讨论的各种系统的通用计算机系统架构有关的附加信息。
本说明书中描述的主题和操作的实施方式可以以数字电子电路,或者以有形介质、固件或硬件上实现的计算机软件实施,该数字电子电路和计算机软件包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本说明书中描述的主题的实施方式可以被实施为一个或多个计算机程序,即编码在计算机存储介质上的、用于由数据处理装置运行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。程序指令可以被编码在人工生成的传播信号(例如机器生成的电信号、光信号或电磁信号)上,该传播信号被生成以编码用于发送到合适的接收机装置以便由数据处理装置运行的信息。计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基板(substrate)、随机或串行存取存储器阵列或设备、或者它们中的一个或多个的组合。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以包括以人工生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质也可以是或被包括在一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储设备)。
本文公开的特征可以在智能电视模块(或连接的电视模块、混合电视模块等)上实施,其可以包括处理模块,该处理模块被配置为将互联网连接与更传统的(例如,经由有线、卫星、无线或其他信号接收的)电视节目源集成。智能电视模块可以物理地合并到电视机中,或者可以包括诸如机顶盒、蓝光或其他数字媒体播放器、游戏控制台、酒店电视系统的单独的设备,以及其他伴随设备。智能电视模块可以被配置为允许观看者搜索和查找网络上、本地有线电视频道上、卫星电视频道上或者存储在本地硬盘驱动器上的视频、电影、照片和其他内容。机顶盒(Set-Top Box,STB)或机顶盒单元(Set-Top Unit,STU)可以包括将信号转换成然后显示在电视屏幕或其他显示设备上的内容的信息装置设备,该信息装置设备可以包含调谐器并连接到电视机和外部信号源。智能电视模块可以被配置为提供包括用于多个不同的应用(诸如网络浏览器和多个流媒体服务、连接的有线或卫星媒体源、其他web“频道”等)的图标的主屏幕或顶级屏幕。智能电视模块还可以被配置为向用户提供电子节目指南。智能电视模块的伴随应用可以在移动计算设备上操作,以向用户提供关于可用节目的附加信息,以允许用户控制智能电视模块等。在替换实施方式中,可以在膝上型计算机或其他个人计算机、智能电话、其他移动电话、手持式计算机、平板电脑或其他计算设备上实施特征。
本说明书中描述的操作可以被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“数据处理装置”、“数据处理系统”、“用户设备”或“计算设备”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机、片上系统、或前述的多个或组合。装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,组成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境(cross-platformruntime environment)、虚拟机或他们中的一个或多个的组合的代码。装置和运行环境可以实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。内容请求模块130和内容选择模块135可以包括或共享一个或多个数据处理装置、计算设备或处理器。
计算机程序(也被称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合于在计算环境中使用的其他单元。计算机程序可以但是不必与文件系统中的文件相对应。程序可以存储在文件的部分中,该文件保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码的部分的文件)。可以部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上运行。
本说明书中描述的过程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适合于运行计算机程序的处理器包括,例如,通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机将还包括或可操作地耦合以从用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘)接收数据或向其发送数据。然而,计算机不需要这样的设备。此外,计算机可以嵌入到另一个设备中,例如移动电话、个人数字助理(Personal Digital Assistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(Universal SerialBus,USB)快闪驱动器)。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备(例如EPROM、EEPROM和快闪存储器设备)、磁盘(例如内部硬盘或可移动磁盘)磁光盘、和CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或被合并到专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有显示设备(例如CRT(阴极射线管)、等离子体或LCD(液晶显示器)监视器)的计算机上实施,以便向用户和用户可以通过其向计算机提供输入的键盘以及指示(pointing)设备(例如鼠标或跟踪球)显示信息。其他类型的设备也可用于提供与用户的交互,例如,提供给用户的反馈可以包括任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向由用户使用的设备递送文档和从由用户使用的设备接收文档来与用户交互,例如,通过响应于从web浏览器接收的请求将网页递送到用户的客户端设备上的web浏览器。
本说明书中描述的主题的实施方式可以被实施在包括例如作为数据服务器的后端组件的计算系统中;或者包括中间件组件,例如应用服务器;或者包括前端组件,例如,具有用户可通过其与本说明书中描述的主题的实施方式交互的图形用户接口或Web浏览器的客户端计算机;或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,互联网)和对等网络(例如,ad hoc对等网络)。
诸如系统500或系统110的计算系统可包括客户端和服务器。例如,数据处理系统110可以包括一个或多个数据中心或服务器群中的一个或多个服务器。客户端和服务器通常彼此远离,并且典型的通过通信网络交互。客户端和服务器的关系由于在各自的计算机上执行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施方式中,服务器将数据(例如,HTML页面)发送到客户端设备(例如,为了向与客户端设备交互的用户显示数据和从用户接收用户输入的目的)。可以从服务器处的客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多特定的实施方式细节,但是这些不应该被解释为对任何发明或可要求保护的范围的限制,而是作为针对本文描述的系统和方法的特定的实施方式的特征的描述。在本说明书中、在单独的实施方式的上下文中描述的某些特征也可以以组合在单个实施方式中实施。相反,在单个实施方式的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施方式中实施。此外,尽管上面的特征可以被描述为以某些组合起作用并且甚至最初这样地要求保护,但是来自要求保护的组合的一个或多个特征在一些情况下可以从组合中分离(excise),并且要求保护的组合可以针对子组合的子组合或变化。
类似地,虽然在附图中以特定的次序描绘了操作,但是这不应该被理解为要求以所示出的特定的次序或以顺序次序执行这样的操作,或者执行所有示出的操作来达到期望的结果。在一些情况下,权利要求中记载的动作可以以不同的次序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示出的特定的次序或顺序次序来达到期望的结果。
在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应被理解为在所有实施方式中都需要这样的分离,并且应该理解,所描述的程序组件和系统通常可以在单个软件产品中集成在一起或者被封装到多个软件产品。例如,内容请求模块130和内容选择模块135可以是数据处理系统110的部分、单个模块、具有一个或多个处理模块的逻辑设备、一个或多个服务器、或搜索引擎的部分。
现在已经描述了一些说明性实施方式和实施方式,显而易见的是,已经通过示例的方式呈现的前述内容是说明性的而非限制性的。具体地,尽管本文呈现的许多示例涉及方法动作或系统元素的特定的组合,但是这些动作和那些元素可以以其他方式组合以实现相同的目标。仅结合一个实施方式讨论的动作、元素和特征不旨在从其他实施方式或实施方式中的类似角色中排除。
本文所使用的措辞和术语是出于描述的目的,不应被视为限制。本文对“包括”、“包含”、“具有”、“含有”、“涉及”、“由...表征”、“特征在于”及其变化形式的使用,意味着包括其后列出的项、其等同物和附加项、以及包括其后专门列出的项的替代实施方式。在一个实施方式中,本文描述的系统和方法包括一个、多于一个或所有所描述的元素、动作或组件的每个组合。
以单数形式提及的对本文的系统和方法的实施方式或元素或动作的任何引用也可以包含包括多个这些元素的实施方式,并且对本文的任何实施方式或元素或动作的任何复数引用也可以包含仅包括单个元素的实施方式。单数或复数形式的引用不旨在将当前公开的系统或方法、它们的组件、动作或元素限制为单个或多个配置。对基于任何信息、动作或元素的任何动作或元素的引用可以包括其中动作或元素至少部分地基于任何信息、动作或元素的实施方式。
本文公开的任何实施方式可以与任何其他实施方式组合,并且对“实施方式”、“一些实施方式”、“替代实施方式”、“各种实施方式”、“一个实施方式”等的引用不一定是必须相互排斥,而是旨在指示结合实施方式描述的特定的特征、结构或特性可以被包括在至少一个实施方式中。如本文所使用的这样的术语不一定都是指相同的实施方式。任何实施方式可以以与本文公开的方面和实施方式一致的任何方式包含地或专门地与任何其他实施方式组合。
对“或”的引用可以被解释为包含性的,使得使用“或”描述的任何术语可以指示描述的术语中的单个、多于一个和所有中的任何。
在附图,在详细描述或任何权利要求中的技术特征之后是附图标记的情况下,包括附图标记的唯一目的增加附图、详细描述和权利要求的可理解性。因此,附图标记和它们的缺失不会对任何权利要求要素的范围产生任何限制作用。
在不脱离本文描述的系统和方法的特性的情况下,本文描述的系统和方法可以以其他特定的形式实现。尽管本文提供的示例涉及控制信息资源的内容的显示,但是本文描述的系统和方法可以包括被应用于其他环境。前述实施方式是说明性的而不是限制描述的系统和方法。因此,本文描述的系统和方法的范围由所附权利要求而不是前面的描述指示,并且在权利要求的等同物的含义和范围内的变化被包含在其中。
Claims (10)
1.一种用于预取由客户端应用呈现的动态加载的内容项的方法,所述方法包括:
提供用于在客户端计算设备上与客户端应用一起执行的计算机指令,当由客户端计算设备执行时,所述计算机指令使得所述客户端计算设备:
在第一时间实例向服务器发送对要在所述客户端应用的环境内呈现的内容的第一请求,对内容的所述第一请求包括标识所述客户端应用的环境内的第一内容放置空间的第一标识符,并且所述第一标识符用于选择要发送给所述客户端计算设备的内容;
响应于对内容的所述第一请求,从所述服务器接收第一内容项;
在与所述客户端应用相关联的客户端计算设备的一个或多个存储器元件中存储与所述第一标识符相关联的第一内容项;
在将所述第一内容项存储在所述一个或多个存储器元件中之后的第二时间实例,检测指示所述第一内容放置空间内的内容呈现的事件;
响应于所述检测并使用所述第一标识符,从所述一个或多个存储器元件中检索所述第一内容项;以及
在所述客户端应用的环境的第一内容放置空间呈现所述第一内容项。
2.根据权利要求1所述的方法,其中所述计算机指令在被所述客户端计算设备执行时还使得所述客户端计算设备:
在第三时间实例,向所述服务器发送对要在所述客户端应用的环境内呈现的内容的第二请求,对内容的所述第二请求包括标识所述客户端应用的环境内的第一内容放置空间的第一标识符;
响应于对内容的所述第二请求,从所述服务器接收第二内容项;
在与所述客户端应用相关联的客户端计算设备的一个或多个存储器元件中存储与所述第一标识符相关联的第二内容项;
在将所述第二内容项存储在所述一个或多个存储器元件中之后的第四时间实例,检测指示所述客户端应用环境的第二内容放置空间内的内容呈现的事件;
响应于所述检测并使用所述第一标识符,从所述一个或多个存储器元件中检索第二内容项;以及
在所述客户端应用环境的第二内容放置空间呈现所述第二内容项。
3.根据权利要求1所述的方法,其中所述计算机指令在被所述客户端计算设备执行时还使得所述客户端计算设备:
在第三时间实例,向所述服务器发送对要在所述客户端应用的环境内呈现的内容的第二请求,对内容的所述第二请求包括标识所述客户端应用的环境内的第二内容放置空间的第二标识符,并且所述第二标识符用于选择要发送给所述客户端计算设备的内容;
响应于对内容的所述第二请求,从所述服务器接收第二内容项;
将与所述第二标识符相关联的第二内容项存储在与所述客户端应用相关联的客户端计算设备的一个或多个存储器元件中;
在将所述第二内容项存储在所述一个或多个存储器元件中之后的第四时间实例,检测指示所述客户端应用环境的第二内容放置空间内的内容呈现的事件;
响应于所述检测并使用所述第二标识符,从所述一个或多个存储器元件中检索第二内容项;以及
在所述客户端应用环境的第二内容放置空间呈现所述第二内容项。
4.根据权利要求1所述的方法,其中所述第一标识符指示用于在所述客户端应用环境的第一内容放置空间处呈现的内容项的类型。
5.根据权利要求1所述的方法,其中所述第一标识符指示所请求内容的大小。
6.根据权利要求1所述的方法,其中所述计算机指令在被所述客户端计算设备执行时还使得所述客户端计算设备:
将从所述服务器接收的每个内容项存储最大预定义持续时间。
7.根据权利要求1所述的方法,其中所述计算机指令在被所述客户端计算设备执行时还使得所述客户端计算设备:
在所述客户端应用环境的第一内容放置空间处呈现所述第一内容项时,从所述一个或多个存储器元件中删除所述第一内容项。
8.根据权利要求1所述的方法,其中检测指示所述第一内容放置空间内的内容呈现的事件包括检测所述客户端计算设备在所述客户端应用的环境内的导航。
9.根据权利要求1所述的方法,其中所述第一内容项是间隙内容项。
10.一种用于预取动态加载的内容项以供在客户端计算设备上执行的客户端应用呈现的系统,包括:
一个或多个处理器;和
存储器,耦合到所述一个或多个处理器,所述一个或多个处理器被配置成实现根据权利要求1-9中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2016/066415 WO2018111246A1 (en) | 2016-12-13 | 2016-12-13 | Systems and methods for prefetching content items |
USPCT/US2016/066415 | 2016-12-13 | ||
CN201780014547.9A CN108701159B (zh) | 2016-12-13 | 2017-12-12 | 用于预取内容项的系统和方法 |
PCT/US2017/065843 WO2018111892A1 (en) | 2016-12-13 | 2017-12-12 | Systems and methods for prefetching content items |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780014547.9A Division CN108701159B (zh) | 2016-12-13 | 2017-12-12 | 用于预取内容项的系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968513A true CN114968513A (zh) | 2022-08-30 |
Family
ID=57708827
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780014547.9A Active CN108701159B (zh) | 2016-12-13 | 2017-12-12 | 用于预取内容项的系统和方法 |
CN202210441107.4A Pending CN114968513A (zh) | 2016-12-13 | 2017-12-12 | 用于预取内容项的系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780014547.9A Active CN108701159B (zh) | 2016-12-13 | 2017-12-12 | 用于预取内容项的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10565118B2 (zh) |
EP (1) | EP3414685B1 (zh) |
JP (1) | JP6616014B2 (zh) |
KR (1) | KR102128996B1 (zh) |
CN (2) | CN108701159B (zh) |
WO (2) | WO2018111246A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11102153B2 (en) * | 2019-05-05 | 2021-08-24 | Microsoft Technology Licensing, Llc | Multistate presence and responsiveness tracking and indication |
CN110502699B (zh) * | 2019-08-27 | 2022-06-03 | 百度在线网络技术(北京)有限公司 | 用于获取信息的方法和装置 |
CN112540761B (zh) * | 2020-12-11 | 2024-06-25 | 网易(杭州)网络有限公司 | 控件的显示控制方法和装置 |
CN112764910B (zh) * | 2021-01-27 | 2024-05-10 | 携程旅游信息技术(上海)有限公司 | 处理差异任务响应的方法、系统、设备及存储介质 |
US20230229756A1 (en) * | 2022-01-18 | 2023-07-20 | Vmware, Inc. | Rapid launch of secure executables in a virtualized environment |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042695A (zh) * | 2006-03-20 | 2007-09-26 | 腾讯科技(深圳)有限公司 | 一种搜索结果页面缩略显示方法及系统 |
CN101325602A (zh) * | 2008-07-30 | 2008-12-17 | 广州市动景计算机科技有限公司 | 一种微浏览器智能预读网页的方法及系统 |
CN101777068A (zh) * | 2009-12-31 | 2010-07-14 | 优视科技有限公司 | 一种用于移动通讯设备终端的网页页面预读及整合浏览系统及其应用方法 |
CN101884023A (zh) * | 2007-12-05 | 2010-11-10 | 夏普株式会社 | 显示装置及显示方法 |
CN103617164A (zh) * | 2013-10-22 | 2014-03-05 | 小米科技有限责任公司 | 网页预取方法、装置及终端设备 |
CN103678307A (zh) * | 2012-08-31 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 页面显示方法及客户端 |
CN104428810A (zh) * | 2012-07-13 | 2015-03-18 | 谷歌公司 | 集合中的内容项之间的导航 |
CN104778172A (zh) * | 2014-01-10 | 2015-07-15 | 腾讯科技(深圳)有限公司 | 网页信息的预取处理方法、装置及对应的网页浏览装置 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675202B1 (en) * | 2000-05-30 | 2004-01-06 | Cary D. Perttunen | Methods, articles and apparatus for providing a browsing session |
JP2003153229A (ja) * | 2001-11-15 | 2003-05-23 | Mitsubishi Electric Corp | データ通信装置及びデータ通信方法 |
WO2006037054A1 (en) * | 2004-09-27 | 2006-04-06 | Browster, Inc. | Method and apparatus for enhanced browsing |
CN100378687C (zh) * | 2005-08-25 | 2008-04-02 | 北京中星微电子有限公司 | 一种高速缓存预取模块及其方法 |
US7657611B2 (en) * | 2006-10-30 | 2010-02-02 | Google Inc. | Content request optimization |
US20080201332A1 (en) * | 2007-02-20 | 2008-08-21 | Souders Steven K | System and method for preloading content on the basis of user context |
US8745341B2 (en) * | 2008-01-15 | 2014-06-03 | Red Hat, Inc. | Web server cache pre-fetching |
WO2011075886A1 (en) * | 2009-12-22 | 2011-06-30 | Google Inc. | Display of advertisements |
US8473688B2 (en) * | 2010-03-26 | 2013-06-25 | Microsoft Corporation | Anticipatory response pre-caching |
EP2487609A1 (en) * | 2011-02-07 | 2012-08-15 | Alcatel Lucent | A cache manager for segmented multimedia and corresponding method for cache management |
US9294582B2 (en) * | 2011-12-16 | 2016-03-22 | Microsoft Technology Licensing, Llc | Application-driven CDN pre-caching |
US9607097B2 (en) * | 2012-03-26 | 2017-03-28 | Excalibur Ip, Llc | Method and system for edge server cache |
US9032159B2 (en) * | 2012-06-27 | 2015-05-12 | Via Technologies, Inc. | Data prefetcher with complex stride predictor |
US8984091B1 (en) * | 2012-08-03 | 2015-03-17 | Google Inc. | Providing content based on timestamp of last request for content |
US10095663B2 (en) * | 2012-11-14 | 2018-10-09 | Amazon Technologies, Inc. | Delivery and display of page previews during page retrieval events |
US20180068347A1 (en) * | 2012-12-11 | 2018-03-08 | Roshan Fernandes | Generating a browsing area of a web browser |
CN103077129B (zh) * | 2012-12-31 | 2016-07-13 | 上海算芯微电子有限公司 | 信息处理方法与装置 |
CN105095107B (zh) * | 2014-05-04 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 清理缓存数据的方法及装置 |
US9420351B2 (en) * | 2014-06-06 | 2016-08-16 | Google Inc. | Systems and methods for prefetching online content items for low latency display to a user |
KR102210409B1 (ko) * | 2015-01-02 | 2021-01-29 | 에스케이텔레콤 주식회사 | 라이브 스트리밍 컨텐츠 제공 방법, 이를 위한 라이브 스트리밍 캐시 장치 및 이를 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체 |
US10867119B1 (en) * | 2016-03-29 | 2020-12-15 | Amazon Technologies, Inc. | Thumbnail image generation |
-
2016
- 2016-12-13 WO PCT/US2016/066415 patent/WO2018111246A1/en active Application Filing
-
2017
- 2017-12-12 KR KR1020187025143A patent/KR102128996B1/ko active IP Right Grant
- 2017-12-12 CN CN201780014547.9A patent/CN108701159B/zh active Active
- 2017-12-12 WO PCT/US2017/065843 patent/WO2018111892A1/en active Application Filing
- 2017-12-12 US US16/091,751 patent/US10565118B2/en active Active
- 2017-12-12 JP JP2018545584A patent/JP6616014B2/ja active Active
- 2017-12-12 CN CN202210441107.4A patent/CN114968513A/zh active Pending
- 2017-12-12 EP EP17818718.3A patent/EP3414685B1/en active Active
-
2020
- 2020-02-17 US US16/792,680 patent/US11354245B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042695A (zh) * | 2006-03-20 | 2007-09-26 | 腾讯科技(深圳)有限公司 | 一种搜索结果页面缩略显示方法及系统 |
CN101884023A (zh) * | 2007-12-05 | 2010-11-10 | 夏普株式会社 | 显示装置及显示方法 |
CN101325602A (zh) * | 2008-07-30 | 2008-12-17 | 广州市动景计算机科技有限公司 | 一种微浏览器智能预读网页的方法及系统 |
CN101777068A (zh) * | 2009-12-31 | 2010-07-14 | 优视科技有限公司 | 一种用于移动通讯设备终端的网页页面预读及整合浏览系统及其应用方法 |
CN104428810A (zh) * | 2012-07-13 | 2015-03-18 | 谷歌公司 | 集合中的内容项之间的导航 |
CN103678307A (zh) * | 2012-08-31 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 页面显示方法及客户端 |
CN103617164A (zh) * | 2013-10-22 | 2014-03-05 | 小米科技有限责任公司 | 网页预取方法、装置及终端设备 |
CN104778172A (zh) * | 2014-01-10 | 2015-07-15 | 腾讯科技(深圳)有限公司 | 网页信息的预取处理方法、装置及对应的网页浏览装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108701159B (zh) | 2022-05-13 |
US20200183845A1 (en) | 2020-06-11 |
WO2018111892A1 (en) | 2018-06-21 |
US10565118B2 (en) | 2020-02-18 |
US11354245B2 (en) | 2022-06-07 |
KR20180107213A (ko) | 2018-10-01 |
KR102128996B1 (ko) | 2020-07-01 |
JP6616014B2 (ja) | 2019-12-04 |
WO2018111246A1 (en) | 2018-06-21 |
EP3414685A1 (en) | 2018-12-19 |
US20190163638A1 (en) | 2019-05-30 |
EP3414685B1 (en) | 2019-11-27 |
JP2019517041A (ja) | 2019-06-20 |
CN108701159A (zh) | 2018-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108701159B (zh) | 用于预取内容项的系统和方法 | |
US10838609B2 (en) | Systems and methods for dynamically appending supplemental content to an information resource responsive to scroll activity | |
CN107408189B (zh) | 针对干扰在信息资源上渲染内容元素的未授权脚本部署对策的系统和方法 | |
CN108140196B (zh) | 使用客户端生成的点击标识符减少内容项交互的时延的系统和方法 | |
CN105745643B (zh) | 以基于文本内容为基础创建基于图像内容的系统和方法 | |
JP6586179B2 (ja) | 無限スクロールグラフィカルユーザインターフェース内のスクロールイベントを帰属させるシステムおよび方法 | |
CN108140195B (zh) | 用于自动管理内容槽位在信息资源中的放置的系统和方法 | |
US9015179B2 (en) | Media content tags | |
US20170070764A1 (en) | Adaptive multi-device content generation based on associated internet protocol addressing | |
US20210352150A1 (en) | Maintaining session identifiers across multiple webpages for content selection | |
US9094735B1 (en) | Re-presentation of previously presented content | |
US9317487B1 (en) | Expansion of high performing placement criteria | |
CN113287092B (zh) | 在应用打开操作期间添加数字内容的系统和方法 | |
US9479615B1 (en) | Systems and methods for providing interstitial content | |
US11625472B2 (en) | Converting static content items into interactive content items | |
CN117909603A (zh) | 防止干扰在信息资源上渲染内容元素的系统和方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220830 |