CN109074360B - 使用多个线程减少下载电子资源的延迟 - Google Patents
使用多个线程减少下载电子资源的延迟 Download PDFInfo
- Publication number
- CN109074360B CN109074360B CN201680084558.XA CN201680084558A CN109074360B CN 109074360 B CN109074360 B CN 109074360B CN 201680084558 A CN201680084558 A CN 201680084558A CN 109074360 B CN109074360 B CN 109074360B
- Authority
- CN
- China
- Prior art keywords
- electronic resource
- client device
- browser
- network domain
- interactive item
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/805—QOS or priority aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0215—Traffic management, e.g. flow control or congestion control based on user or device properties, e.g. MTC-capable devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0858—One way delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Environmental & Geological Engineering (AREA)
Abstract
一种方法、***和装置,包括在计算机存储介质上编码的计算机程序,用于减少呈现内容中的延迟。在一个方面,***包括(i)呈现交互式项目的本机应用和(ii)延迟减少引擎。延迟减少引擎检测与交互式项目的交互,所述交互式项目链接到第一电子资源,所述第一电子资源(i)不同于本机应用并且(ii)由第一网络域提供;以及响应于检测,减少呈现第一电子资源的延迟包括并行运行第一处理线程和第二处理线程。第一处理线程从第二网络域请求第二电子资源以及加载第二电子资源,并且响应于加载,存储用于第二网络域的浏览器cookie。第二处理线程请求第一电子资源以及呈现第一电子资源。
Description
技术领域
本说明书描述了与减少获得、提供和呈现所请求的内容的延迟和错误相关的技术。
背景技术
用户通过电子网络访问许多类型的信息。例如,用户通过因特网访问各种网页、博客、视频和其他类型的电子资源。随着移动设备(例如,智能电话和平板电脑)的功能的改进,用户更常使用移动设备通过因特网访问信息。即使有这样的改进,通过网络将信息下载到移动设备或其他类型的计算设备也具有一些相关联的延迟。
发明内容
本说明书描述了与减少获得、提供和呈现所请求的内容的延迟和错误相关的技术。
通常,本说明书中描述的主题的一个创新方面能够体现在包括以下动作的方法中:由客户端设备检测与在客户端设备上运行的本机应用呈现的交互式项目,该交互式项目链接到(i)不同于本机应用的和(ii)由第一网络域提供的第一电子资源;响应于检测,减少在客户端设备处呈现第一电子资源的延迟,包括:由客户端设备运行从不同于第一网络域的第二网络域请求第二电子资源以及在客户端设备处加载第二电子资源,并且响应于加载,在客户端设备处存储用于第二网络域的浏览器cookie的第一处理线程;由客户端设备并且与第一处理线程并行地运行从第一网络域请求第一电子资源以及呈现第一电子资源的第二处理线程。该方面的其他实施例包括相应的、被配置为执行在计算机存储设备上编码的方法的动作的***、装置和计算机程序。
这些和其他实施例能够各自可选地包括以下特征中的一个或多个。在一些方面,在客户端设备处加载第二电子资源包括将第二电子资源加载到本机应用的应用内浏览器框架中。在一些方面,应用内浏览器框架与web浏览器应用共享处理浏览器cookie的web浏览器cookie jar。
一些方面包括通过并行运行第一处理线程和第二处理线程而不是在运行第二处理线程之前等待第一处理线程完成来减少在客户端设备处呈现第一电子资源中的错误。一些方面包括检测从web浏览器应用到本机应用的用户返回;以及响应于检测到用户返回,从本机应用中移除应用内浏览器框架。
一些方面包括在呈现第一电子资源之后检测预先指定的用户动作的发生,使用给定电子资源发生预先指定的用户动作,从浏览器cookie获得数据,以及使用给定电子资源的web信标发送指定预先指定的用户动作的发生的数据和从浏览器cookie获得的数据。
在一些方面,第一处理线程打开不同于本机应用的web浏览器应用,并在web浏览器应用中呈现第一电子资源。
能够实施本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。当在客户端设备处选择链接到电子资源的交互式项目时,能够根据本文描述的方法直接地获得电子资源并将其呈现/提供给客户端设备。该方法使得在客户端设备处呈现电子资源的延迟减少以及与至少一些传统上需要重定向过程来完成在客户端设备上存储浏览器cookie的现有技术(例如,网络通信故障、断开的链路、下行服务器或响应超时)相关联的错误减少。
如本文所提出的,通过在客户端设备上与获得和存储浏览器cookie并行或在其之前请求和呈现由交互式项目链接的电子资源,获得浏览器cookie可能导致的错误可能不会延迟或阻止所请求的电子资源的呈现。以这种方式,如果在尝试检索用于存储浏览器cookie的电子资源时发生错误,则浏览器cookie可以不存储在客户端设备处,但是可以在客户端设备处呈现所请求的电子资源而没有由错误引起的延时。这通过使客户端设备不易受网络错误或可能阻止计算机呈现内容的其他错误的影响来改善客户端设备(或任何其他计算机)的功能。
在附图和下面的描述中阐述了本说明书中描述的主题的一个或多个实施例的细节。本主题的其他特征、方面和优点将从说明书、附图和权利要求中变得显而易见。
附图说明
图1是描绘用于请求和呈现电子资源的示例处理流程的框图。
图2是示例交互式项目分发***分发交互式项目以及维护交互式项目的交互数据的环境。
图3是描绘当响应于链接到电子资源的交互式项目的选择而请求和呈现电子资源时移动设备的示例屏幕截图的框图。
图4是用于减少呈现电子资源的延迟的示例过程的流程图。
各个附图中相同的附图标记和名称表示相同的元件。
具体实施方式
本文描述的***和方法涉及通过通信网络请求电子资源。通过诸如因特网的网络请求或访问电子资源的一些方法使用在正在请求资源的设备的浏览器上的已知的重定向过程。这样的方法在客户端设备处呈现资源时遭受相关联的延迟,并且已经发现遭受错误的影响。因此,当与其他技术相比时,存在对请求电子资源的(例如,包括但不限于访问和/或下载内容)、具有减少的延迟和较少的错误易感性的替代方法和***的需求。
本文描述的用于请求电子资源的***和技术减少了在选择包括到电子资源的链接的交互式项目之后在客户端设备处呈现电子资源(例如,网页或电子文档)的延迟。例如,用户可以选择(例如,与之交互)由在客户端设备上运行的本机应用呈现的交互式项目。响应于该选择,客户端设备可以请求、获得并呈现由所选择的交互式项目链接到的电子资源。电子资源可以在本机应用的用户界面内(例如,在应用的应用内浏览器框架或窗口中)或在web浏览器应用中呈现。应用内浏览器框架是在应用的用户界面内呈现的浏览器框架。应用内浏览器框架的示例是Chrome web浏览器提供的Chrome自定义标签。
响应于对交互式项目的选择,客户端设备还可以下载浏览器cookie并将其存储在客户端设备上。例如,浏览器cookie可以由远程服务器放置在客户端设备上,并且cookie可以存储(1)与由所选择的交互式项目链接的电子资源相关的数据,(2)与选择本身相关的数据,例如,选择发生的时间或选择的唯一标识符,和/或(3)与所选择的交互式项目有关的数据。由于cookie存储至少一些可能被视为私有的数据,因此web浏览器通常不允许网络域(例如,web域)存储或访问不同的域的浏览器cookie。因此,如果第三方被用于提供与不同方提供的电子资源集成的交互式项目,并且第三方也为电子资源的发布者管理cookie,则第三方的web域通常必须存储和检索浏览器cookie的内容而不是电子资源的发布者的内容。在该示例中,当用户设备请求发布者的电子资源时,能够使用重定向技术来存储第三方cookie。
例如,通过诸如因特网的网络请求或访问电子资源的一些方法在请求资源的设备的浏览器上使用重定向技术。如下所述,这样的方法在客户端设备上呈现资源时遭受相关联的延迟并且已经发现遭受错误的影响。因此,当与现有的技术相比时,存在对请求电子资源的(即,包括但不限于访问和/或下载内容)、具有减少的延迟和较少的错误易感性的替代方法和***的需求。
一些请求电子资源的方法使用重定向技术,客户端设备的web浏览器能够在被重定向(例如,使用HTTP重定向指令)到由所选择的交互式项目链接的电子资源的web域之前首先被定向到第三方的web域。第三方的web域中的服务器能够将浏览器cookie放置在客户端设备上,并且向自动地使web浏览器导航到由所选择的交互式项目链接的电子资源的web域的客户端设备的web浏览器提供数据(例如,机器可运行指令)。然后,客户端设备能够从web域下载电子资源,并将电子资源呈现在客户端设备的显示器中,例如,呈现给选择了交互式项目的用户。
重定向技术能够在选择交互式项目之后延迟(例如,增加延迟)下载和呈现电子资源。由于移动网络传输速率和/或通过移动网络建立网络呼叫(例如,请求)所需要的时间量,这种延时/延迟在移动设备上甚至能够更加明显。
提出了能够与获得浏览器cookie并行地或在其之前请求并呈现电子资源的、用于应用内交互式项目选择(例如,在本机应用中呈现的内容项的选择)的实施例、实施方式、方法和技术。例如,在一个或多个实施例中,客户端设备能够响应于交互式项目选择并行地运行两个处理线程。在一个处理线程中,能够从第三方web域请求电子资源。一旦接收到,电子资源就能够被加载到本机应用的应用内浏览器框架中,并且浏览器cookie能够被存储在客户端设备上。在另一个处理线程中,能够在客户端设备的web浏览器应用(或应用内浏览器框架)中请求和呈现由所选择的交互式项目链接的电子资源。
因此,响应于上面简要说明并在下面更详细地阐述的交互式项目选择来运行两个处理线程,提供了使得能够直接地请求电子资源(即,无需等待浏览器cookie被存储在客户端设备上)的有利效果,从而减少了呈现登陆页面的延迟并减少了与重定向技术相关联的错误。
图1是描绘用于请求、下载和呈现电子资源的示例处理流程120和140的框图。处理流程120和140都能够响应于资源请求110而发生。资源请求110能够是由客户端设备响应于用户与电子资源的交互式项目的交互而生成的电子资源(例如,网页或电子文档)的发送请求。例如,交互式项目可以是特定产品或服务的广告,并且电子资源可以是特定产品或服务的登陆页面。其他交互式项目包括音频或视频剪辑、交互式游戏或其他提供交互功能的项目。在一些实施方式中,交互式项目的可视化与电子资源集成以创建在客户端设备的显示器内呈现的合成页面。
示例处理流程120包括重定向技术,该技术通常在电子资源被请求并在客户端设备处呈现之前完成。特别地,在处理流程120中请求电子资源的方法包括:从一个域中的服务器请求cookie资源(例如,用于放置浏览器cookie的网页)(121),从该域中的服务器接收(例如,下载)浏览器cookie和重定向响应(122),以及将cookie存储在客户端设备上(123)。例如,交互式项目可以包括用于提供浏览器cookie(例如,相对于电子资源的发布者)的第三方的web域的***或指针(例如,统一资源定位符(Universal Resource Locator,URL))。响应于对交互式项目的选择,客户端设备可以使用***或指针来从第三方的web域请求cookie资源(例如,网页)。第三方的web域可以将浏览器cookie和重定向响应(例如,HTTP 302重定向响应)返回给客户端设备。然后,客户端设备能够将浏览器cookie存储在本地存储器中。
重定向响应包括机器可读指令(例如,HTTP重定向指令),其自动使得客户端设备的web浏览器应用导航到用于交互式项目的电子资源。例如,重定向响应可以包括用于电子资源的定位符(例如,URL)和HTTP 302重定向代码。HTTP 302重定向响应的运行使得web浏览器使用***从提供电子资源的web域请求电子资源(124)。然后,客户端设备从web域下载电子资源(125),并在客户端设备的图形显示器中呈现该电子资源(126)。
在处理流程120中请求电子资源的方法的重定向技术可能花费一些时间来完成并且遭受本文描述的缺点。通过在请求电子资源之前等待重定向技术完成,在选择交互式项目的时间和在客户端设备处呈现电子资源的时间之间创建一些额外的延迟(例如,超出没有重定向技术的直接地下载并呈现电子资源所需要的时间)。此外,在重定向技术期间发生的任何错误(例如,超时、链路故障或网络故障)可能增加额外的延时或阻止电子资源在客户端设备处呈现。例如,如果客户端设备不能连接到提供cookie和重定向指令的第三方的web域,则客户端设备可能不能获得电子资源。
示例处理流程140是通过使用两个处理线程来请求或访问电子资源的方法的一种实施方式的表示,所述两个处理线程能够并行运行以在客户端设备上存储浏览器cookie并呈现电子资源,(例如,相对于上面讨论的重定向技术)这将减少与下载和呈现电子资源相关联的延迟。特别地,第一处理线程请求cookie资源(141)、接收cookie资源(142)以及将浏览器cookie存储在客户端设备上(143)。例如,可以响应于由本机应用(例如,在移动设备处运行的应用)呈现的交互式项目的选择来运行示例处理流程140。如下所述,延迟减少引擎能够检测与交互式项目的交互并且响应于检测到交互来管理两个处理线程的运行。
例如,如下面更详细描述的,延迟减少引擎能够响应于检测到交互式项目的选择而从第三方的web域请求cookie资源,同时还从不同的web域(例如,发布者的服务器web域)请求电子资源。在一些实施方式中,延迟减少引擎启动允许电子资源(例如,网页)在本机应用(例如,在应用内浏览器框架中或本机应用的窗口)内呈现的本机应用的控制器、控制器类或其他元素。当在客户端设备处接收到cookie资源时,本机应用能够加载cookie资源。在一些实施方式中,本机应用实际上不呈现cookie资源。相反,可以将cookie资源加载到0x0大小(例如,零像素乘以零像素)的、被启动用于存储cookie的框架中。或者,cookie资源可以呈现在呈现交互式项目的相同的位置,或者呈现在本机应用中的全尺寸浏览器框架中。cookie和cookie资源能够一起被接收并存储在客户端设备上。
第二处理线程能够请求电子资源(144)、下载电子资源(145)以及呈现电子资源(146)。在示例实施例的实施方式中,能够在完成第一处理线程之前运行第二处理线程。因此,在示例实施例的一些示例实施方式中,第二处理线程能够与第一处理线程并行地运行或者在运行第一处理线程之前运行。在示例实施例的另一示例实施方式中,第二处理线程可以在第一处理线程被启动的同时、在第一处理线程被启动之前或者在第一处理线程被启动之后的指定的时间量内被启动。
如下所述,延迟减少引擎能够运行脚本(例如,代码的一部分),该脚本启动或触发客户端设备打开web浏览器应用并使web浏览器应用从提供电子资源的web域请求/下载电子资源。web浏览器应用能够从web域下载电子资源并向用户呈现电子资源。客户端设备能够最小化本机应用或继续运行在后台中的本机应用(例如,在没有本机应用被呈现的情况下),而web浏览器应用在客户端设备的显示器上可见。或者,电子资源可以呈现在本机应用的应用内浏览器框架(例如,占用少于客户端设备显示器的所有显示区域的框架)中。
图2是环境200,其中示例交互式项目分发***240分发交互式项目和浏览器cookie,并维护交互式项目的交互数据。数据通信网络220连接交互式项目分发***240、客户端设备210和发布者网站230。网络220能够包括局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、因特网、移动网络或其组合。
客户端设备210是能够通过网络220请求和接收电子资源和其他数据的电子设备。示例客户端设备包括个人计算机、移动通信设备(例如,智能电话,平板计算设备和/或智能手表)、以及能够通过网络220发送和接收数据的其他设备。客户端设备通常包括诸如web浏览器214的用户应用,以便于通过网络220发送和接收数据。web浏览器214能够使用户能够与通常位于网站上的网页上的文本、图像、视频、音乐和其他信息交互。
客户端设备210能够包括其他应用,例如本机应用212。本机应用是为特定平台或特定类型的设备开发的应用。仅举几个示例,示例本机应用包括游戏、生产力(productivity)应用、社交网络应用和与相应网站相关的应用。
客户端设备210还包括延迟减少引擎216,如下面更详细描述的,其减少请求和呈现电子资源的延迟。在一些实施方式中,延迟减少引擎216被包括在服务于软件开发工具包(Software Development Kit,SDK)的应用内交互式项目中。在该示例中,服务于SDK的应用内交互式项目可以是呈现本机应用内的交互式项目的本机应用(例如本机应用212)的一部分。因此,在该示例中,延迟减少引擎216可以是本机应用212的模块。
网站包括与域名相关联并由一个或多个服务器托管(host)的一个或多个电子资源。示例网站是以超文本标记语言(Hypertext Markup Language,HTML)格式化的网页的集合,其能够包含文本、图像、多媒体内容和诸如脚本的编程元素。每个网站由内容发布者230维护,内容发布者230是控制、管理和/或拥有该网站的实体。
电子资源是能够由发布者230通过网络220提供并且与资源地址相关联的任何数据。仅举几个示例,电子资源包括HTML页面、文字处理文档和便携式文档格式(PortableDocument Format,PDF)文档、图像、视频和源代码。资源能够包括诸如单词、短语、图片等的内容,并且能够包括嵌入的信息(诸如元信息和超链接)和/或嵌入的指令(例如,脚本)。发布者230还能够提供本机应用。
交互式项目分发***240可包括例如,位于一个或多个数据中心中的一个或多个服务器。例如,交互式项目分发***240能够包括一个或多个前端服务器245,其接收对交互式项目的请求并响应于这些请求提供交互式项目。如下面更详细描述的,前端服务器245还能够接收对cookie资源的请求并响应于请求提供cookie资源和浏览器cookie,以及响应于指定的用户动作从浏览器cookie接收数据。
交互式项目包括内容(例如,视觉和/或可听内容),并且能够与电子资源(例如,网页和电子文档)或应用(例如,本机应用)一起呈现。交互式项目还能够包括到另一电子资源和/或代码的链接(或与链接相关联),该链接使得正在呈现交互式项目的客户端设备响应于用户与交互式项目的交互而请求和呈现另一电子资源。例如,交互式项目可以包括特定产品的内容。该示例交互式项目可以包括到登录页面的链接,该登陆页面包括关于产品的更多信息和/或允许用户获得产品。当用户与交互式项目交互(例如,选择)时,客户端设备可以使用该链接通过网络220向登陆页面的发布者发送对登陆页面的请求,并且在客户端设备处呈现登录页面。
浏览器cookie是从网站发送并由web浏览器存储在客户端设备上的文件(例如,文本文件)。web浏览器通常允许用户选择是允许还是阻止web cookie存储在客户端设备上。如上所述,web浏览器通常不允许web域存储或访问不同的域的浏览器cookie。因此,如果发布者230的web域在客户端设备210上存储浏览器cookie,则交互式项目分发***240的不同的web域可能无法访问浏览器cookie。
交互式项目分发***240还能够包括一个或多个后端服务器。例如,交互式项目分发***240包括一个或多个交互式项目选择服务器250、一个或多个交互式数据服务器260和一个或多个浏览器cookie服务器270。尽管交互式项目选择服务器250、交互式数据服务器260和浏览器cookie服务器270被示为单独的服务器,但是每个服务器的功能能够被包括在单个服务器中。服务器能够通过数据通信网络(例如,LAN、WAN或因特网)通信。
交互式项目选择服务器250能够接收对交互式项目的请求,并响应于每个请求选择一个或多个交互式项目来提供。例如,由发布者230提供的电子资源可以包括用于呈现交互式项目的交互式项目槽(slot)。电子资源能够包括代码(例如,脚本),其使得正在加载电子资源的客户端设备向交互式项目分发***240发送请求以便使交互式项目呈现在交互式项目槽中。交互式项目选择服务器250能够选择交互式项目并将所选择的交互式项目提供给前端服务器245。进而,前端服务器245能够将所选择的交互式项目提供给从其接收请求的客户端设备。
交互式项目分发***240包括交互数据库254,其存储与提供给客户端设备的交互式项目的交互相关的数据。这样的交互数据能够包括,例如,交互式项目已经接收到交互的次数(例如,交互式项目的选择的数量)、交互式项目已经接收到交互的速率、每个交互的时间戳、在交互式项目接收到交互之后预先指定的用户动作已经发生的次数和/或这样的预先指定的用户动作的发生的时间戳。
当客户端设备210的用户与交互式项目交互(例如,选择)时,客户端设备210生成对与交互式项目相关联的电子资源(例如,登陆页面)的请求,该电子资源通常是发布者的网页。例如,发布者230可以包括广告商,每个广告商托管各自的网页,网页中的一些是登陆页面。交互式项目能够包括到其相关联的电子资源的链接。
浏览器cookie服务器270能够向客户端设备210提供浏览器cookie。例如,浏览器cookie服务器270响应于用户与客户端设备处的交互式项目的交互而将浏览器cookie放置在客户端设备上。浏览器cookie能够包括(例如,标识客户端设备的)唯一标识符和标识用户与之交互的交互式项目的数据、和/或用户的与交互式项目的交互的其他细节(例如,交互的时间戳、或者用于交互的唯一标识符,该标识符进而能够与属于可以存储在交互数据库中的交互的进一步的记录相关联)。下面描述用于将浏览器cookie放置在客户端设备上的示例技术。
交互数据服务器260能够获得并存储作为交互数据库254中的交互数据的交互式项目的转换数据。当用户在与交互式项目交互之后执行指定的动作时,例如,当用户在与产品的交互式项目交互并且查看交互式项目的登陆页面之后购买产品时,可以为交互式项目记录转换。
在一些实施方式中,交互数据服务器260使用被包括在发生指定的用户动作的电子资源或者在指定的用户动作发生之后呈现的电子资源中的web信标(例如,像素标签或代码)来接收与指定的用户动作相关的数据。例如,像素代码可以被包括在电子资源中。像素代码能够使呈现电子资源的web浏览器从交互式项目分发***240请求图像。在请求中,像素代码还能够使得web浏览器向交互式项目分发***240提供指定指定的用户动作的发生的数据和被包括在存储在客户端设备上的浏览器cookie(或cookie本身)中数据。例如,请求可以包括指定web cookie的唯一标识符的数据和指定浏览器cookie存储在客户端设备上的交互式项目的数据。响应于请求,交互式项目分发***240的前端服务器245能够提供在web浏览器中呈现但对用户不可见的图像(例如,1x1图像)。
延迟减少引擎216能够减少呈现由交互式项目链接的电子资源的延迟。延迟减少引擎216能够检测与呈现在应用(例如,本机应用212)中的交互式项目的交互(例如,交互式项目的选择)。响应于检测到交互,延迟减少引擎216能够与前端服务器240交互以获得浏览器cookie。延迟减少引擎216还能够与发布者的网站交互以请求交互式项目链接到的电子资源。
在一些实施方式中,延迟减少引擎216管理多个处理线程的运行以获得浏览器cookie并请求电子资源。在第一处理线程中,延迟减少引擎216能够获得浏览器cookie并将浏览器存储在客户端设备210上。例如,响应于与交互式项目的交互,延迟减少引擎216可以从交互式项目分发***240请求cookie资源。请求可以包括指定交互式项目的数据。前端服务器245能够接收请求并向浏览器cookie服务器270提供请求。浏览器cookie服务器270能够在交互数据库254中记录交互式项目的选择。该选择能够用于更新交互式项目的交互率或交互度量(interactions metric)的数量。浏览器cookie服务器270还能够向前端服务器245提供浏览器cookie和cookie资源(例如,网页)。进而,前端服务器245能够向延迟减少引擎216提供浏览器cookie和cookie资源。
延迟模块216还能够将cookie资源加载到本机应用212的应用内浏览器框架中。在一些实施方式中,延迟减少引擎216将cookie资源加载到0x0大小的应用内浏览器框架中,使得cookie资源对用户不可见。通过在应用内浏览器框架中加载cookie资源,延迟减少引擎216能够将浏览器cookie存储在客户端设备210上,因为cookie资源和浏览器cookie是从相同的web域获得的。
在第二处理线程中,延迟减少引擎216可以使客户端设备210打开web浏览器214(或web浏览器的标签)。然后,延迟减少引擎216可以使web浏览器导航到电子资源的URL。例如,延迟减少引擎216可以从用户与其交互的交互式项目获得URL。web浏览器214能够使用URL来从发布者230请求电子资源。一旦接收到电子资源,web浏览器214就能够呈现电子资源。
在另一示例中,延迟减少引擎216可以使电子资源在本机应用212内呈现。例如,不是打开web浏览器214,延迟减少引擎216而是可以使电子资源呈现在本机应用212的应用内浏览器框架中。在该示例中,延迟减少引擎216可以启动允许电子资源在本机应用212的应用内浏览器框架中呈现的本机应用212的控制器、控制器类或其他元素。
延迟减少引擎216可以并行地运行处理线程,如上面针对第一示例实施方式所说明的。可替代地或附加地,延迟减少引擎216可以在启动获得浏览器cookie的第一处理线程之前启动呈现由交互式项目链接的电子资源的第二处理线程,如上面针对第二示例实施方式所说明的。例如,某些操作***允许应用在后台继续运行短暂的时间。在打开web浏览器214之后,本机应用212能够在该短暂的时间量内继续运行以请求和加载cookie资源,使得浏览器cookie能够存储在客户端设备210上。
如果在客户端设备210处呈现电子资源之后发生指定的用户动作,则可以将来自浏览器cookie的数据发送到交互式项目分发***240。例如,如上所述,在其处发生动作的电子资源(或者在动作发生之后呈现的电子资源)可以包括使客户端设备210发送指定动作的发生的数据和浏览器cookie中包括的数据的像素代码。可以嵌入电子资源中的像素代码的示例是“<img src="Tracking Pixel URL"style="display:none">”。前端服务器245能够接收数据并将数据提供给交互数据服务器260。交互数据服务器260能够基于接收的数据来更新存储在交互数据库254中的、用于交互式项目的交互数据。例如,交互数据服务器260可以响应于接收数据而更新交互式项目的转换率或转换数量,或者可以记录时间戳和关于转换的其他适当细节。为了允许web浏览器向交互式项目分发***240发送浏览器cookie或其数据,web浏览器214和本机应用212的应用内浏览器框架可以共享管理浏览器cookie的cookie jar。
图3是描绘当响应于对链接到电子资源的交互式项目的选择而请求和呈现电子资源时移动设备315的示例屏幕截图310-312的框图。在屏幕截图310中,移动设备315正在向用户呈现提供新闻文章的新闻应用320。示例新闻应用320呈现新闻内容324(例如,新闻文章)和交互式项目322。示例交互式项目322可以包括到与交互式项目322相关的电子资源的链接(或以其他方式与与交互式项目322相关的电子资源的链接相关联)。例如,交互式项目322可以包括到登录页面的链接,该登录页面包括在交互式项目中描绘或描述的产品或服务的内容。
示例屏幕截图311描绘了在用户与交互式项目322交互之后的移动设备315。特别地,移动设备315正在web浏览器330中呈现电子资源332。例如,如上所述,延迟减少引擎可以响应于对交互式项目的选择而打开web浏览器以呈现电子资源。web浏览器330可以是在移动设备315的显示器上呈现的活动应用。移动设备315可以在移动设备315的用户不可见后台最小化或继续运行新闻应用320。
虽然用户不可见(例如,在移动设备的显示器中不可见),但是新闻应用320包括呈现cookie资源的应用内浏览器框架334。例如,移动设备315可以响应于用户与交互式项目的交互来请求cookie资源。可以在应用内浏览器框334中加载cookie资源,使得浏览器cookie能够存储在移动设备315上。当新闻应用320在移动设备315的显示器上可见时,应用内浏览器框架334可以是小的或不可见的。例如,应用内浏览器框架334可以是像素的0x0框架。在其他实施方式中,可以呈现cookie资源来代替交互式项目322,例如,如果交互式项目322在应用内浏览器框架中呈现。
示例屏幕截图312描绘了在用户关闭web浏览器330之后的移动设备315。在该示例中,移动设备315在web浏览器关闭之后呈现新闻应用320。新闻应用320再次呈现在用户与交互式项目322交互之前呈现的新闻内容324和交互式项目322。或者,新闻应用322可以呈现不同的交互式项目。
另外,延迟减少引擎可以响应于web浏览器330被关闭或者响应于用户返回到新闻应用320而移除应用内浏览器框334。例如,延迟减少引擎可以被配置为检测新闻应用320何时被主动呈现在移动设备315的显示器处。作为响应,延迟减少引擎可以使新闻应用315移除应用内浏览器框架334。
图4是用于减少呈现电子资源的延迟的示例过程400的流程图。例如,能够通过数据处理装置(诸如图2的交互式项目分发***240)来实施过程400的操作。过程400还能够通过存储在非暂时性计算机存储介质上的指令来实施,其中由数据处理装置运行指令使得数据处理装置执行过程400的操作。
检测与交互式项目的交互(402)。例如,可以在客户端设备上运行的本机应用内呈现交互式项目。用户可以通过选择交互式项目来与交互式项目交互。交互式项目可以包括到诸如网页或电子文档的第一电子资源的链接。例如,包括特定产品的内容的交互式项目可以包括到登录页面的链接,该登录页面包括特定产品的附加内容。
第一电子资源可以由与发布者相关联的第一网络域提供。例如,第一网络域可以是发布者的网站。在该示例中,到第一电子资源的链接能够是第一电子资源的URL。
交互式项目还可以包括到第二网络域的链接,该第二网络域提供浏览器cookie和cookie资源。例如,第二网络域可以与提供交互式项目和/或维护交互式项目的交互数据的第三方相关联。
响应于交互,运行第一处理线程(404)和第二处理线程(412)。在一些实施方式中,第一处理线程和第二处理线程并行运行,如上面针对第一示例实施方式所说明的。在一些实施方式中,第二处理线程在第一处理线程之前启动,如上面针对第二示例实施方式所说明的。
在第一处理线程中,从第二网络域请求第二电子资源(406)。第二电子资源可以是用于在客户端设备上存储浏览器cookie的cookie资源。为了请求第二电子资源,延迟减少引擎使本机应用打开应用内浏览器框架并导航到第二电子资源的URL。作为响应,应用内浏览器框架可以使用URL从第二网络域请求第二电子资源。
在客户端设备处加载第二电子资源(408)。例如,本机应用可以接收第二电子资源并在应用内浏览器框架中加载第二电子资源。
在客户端设备上存储用于第二网络域的浏览器cookie(410)。例如,第二网络域可以向浏览器cookie提供第二电子资源。当第二电子资源被加载到应用内浏览器框架中时,由于从相同的域接收第二电子资源和浏览器cookie,因此应用内浏览器框架可以允许浏览器cookie存储在客户端设备上。
在第二处理线程(412)中,从第一网络域请求第一电子资源(414)。在一些实施方式中,延迟减少引擎可以使客户端设备打开web浏览器。另外,延迟减少引擎还可以解析到被包括在交互式项目中的第一电子资源的链接。然后,延迟减少引擎能够使web浏览器导航到该链接并请求第一电子资源。
在客户端设备处呈现第一电子资源(416)。例如,客户端设备可以从第一网络域接收第一电子资源并使用web浏览器呈现第一电子资源。客户端设备可以使web浏览器成为活动应用,使得web浏览器和第一电子资源被呈现在客户端设备的显示器上,而本机应用被最小化或被发送到客户端设备的后台。
在呈现第一电子资源之后检测预先指定的用户动作的发生(418)。在一些实施方式中,预先指定的动作是在交互式项目中呈现或描述的产品或服务的获取或下载。响应于预先指定的动作的发生,可以基于提供给客户端设备的电子资源中包括web信标(例如,像素代码)来检测预先指定的动作的发生。例如,web信标可以被包括在发送到客户端设备以确认产品或服务的获取或下载的交易确认页面中。
从从第二网络域接收的浏览器cookie获得数据并将其存储在客户端设备上(420)。例如,web信标可以包括使得web浏览器呈现电子资源以从浏览器cookie获得数据的代码。
指定预先指定的用户动作的发生的数据和从浏览器cookie获得的数据被发送到第二网络域(422)。例如,如果web信标包括像素代码,则像素代码能够使web浏览器呈现具有像素代码的电子资源以从第二网络域重新请求图像。在请求中,像素代码还能够使web浏览器向第二网络域提供指定预先指定的用户动作的发生的数据和被包括在客户端设备上存储的浏览器cookie中的数据。如果用户在查看第一电子资源并执行预先指定的用户动作之后返回到本机应用,则可以移除本机应用的应用内浏览器框架。
本说明书中描述的主题和操作的实施例能够以数字电子电路实施,或者以计算机软件、固件或硬件实施,包括本说明书中公开的结构及其结构等同物、或者一个或多个它们的组合。本说明书中描述的主题的实施例能够实施为一个或多个计算机程序,即编码在计算机存储介质上用于由数据处理装置运行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。可替代地或另外地,程序指令可以在人工生成的传播信号上编码,例如,机器生成的电、光或电磁信号,其被生成以对信息编码以便传输到合适的接收器设备以便由数据处理装置运行。计算机存储介质能够是或者被包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或者它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质能够是以人工生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质也能够是或者被包括在一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储设备)中。
本说明书中描述的操作能够实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机、片上***、或前述的多个或其组合。装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置还能够包括为讨论的为计算机程序创建运行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理***、操作***、跨平台运行环境、虚拟机或它们一个或多个的组合。装置和运行环境能够实现各种不同的计算模型基础结构,例如web服务、分布式计算和网格计算基础结构。
计算机程序(也被称为程序、软件、软件应用、脚本或代码)能够用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且能够以任何形式部署,包括作为独立程序或作为模块、组件、子程序、对象或适用于计算环境的其他单元。计算机程序可以但不必与文件***中的文件相对应。程序能够存储在保持其它程序或者数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的部分中、存储在专用于讨论的程序的单个文件中、或者存储在多个协调的文件(例如,存储一个或多个模块、子程序、或者代码的部分)的文件中。能够部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上运行。
本说明书中描述的过程和逻辑流程能够由运行一个或多个计算机程序的一个或多个可编程处理器运行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也能够由专用逻辑电路执行,并且装置也能够实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
作为示例,适合于运行计算机程序的运行的处理器包括通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。一般,处理器将从只读存储器或者随机存取存储器或者两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。一般,计算机还将包括用于存储数据的一个或多个海量存储设备例如,磁盘、磁光盘或者光盘,或者计算机还将被可操作地耦合到所述一个或多个海量存储设备,从所述一个或多个海量存储设备接收数据、或者向所述一个或多个海量存储设备传递数据、或者兼而有之。但是,计算机不需要这样的设备。此外,计算机能够嵌入在另一个设备中,仅举几个示例,例如移动电话、个人数字助理(PersonalDigital Assistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位***(Global Positioning System,GPS)接收器或便携式存储设备(例如,通用串行总线(Universal Serial Bus,USB)闪存驱动器)。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和CD-ROM和DVD-ROM磁盘。处理器和存储器能够由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例能够在具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监视器,和用户能够通过其向计算机提供输入的键盘以及指示设备,例如鼠标或跟踪球的计算机上实施。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机能够通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求将网页发送到用户的客户端设备上的web浏览器。
本说明书中描述的主题的实施方式能够实施在计算***中,该计算***包括例如作为数据服务器后端组件、或者包括例如应用服务器的中间组件、或者包括例如具有用户通过其能够与在本说明书中描述的主题的实施方式交互的图形用户界面和web浏览器的客户端计算机的前端组件、或者一个或多个这样的后端组件、中间件组件、或者前端组件的任何组合。***的组件能够通过任何形式或任何介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,因特网)和对等网络(例如,ad hoc对等网络)。
计算***能够包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络交互。客户端和服务器之间的关系凭借在各自的计算机上运行的并且彼此之间具有客户端-服务器关系的计算机程序而发生。在一些实施例中,(例如,用于向与客户端设备交互的用户显示数据和从其接收用户输入的目的)服务器向客户端设备发送数据(例如,HTML页面)。能够从服务器处的客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多特定实施方式细节,但是这些不应该被解释为对任何发明或可要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在本说明书中的单独的实施例的上下文中描述的某些特征也能够在单个实施例中组合实施。相反地,在单个实施例的上下文中描述的各种特征还能够分开地实施在多个实施例中或者实施在任何合适的子组合中。而且,虽然特征可能在上面被描述为出现在某些组合中并且甚至一开始就被请求按这样进行保护,但是来自请求保护的组合的一个或多个特征在一些情况下能够从该组合中被剥离,并且请求保护的组合可以专注于子组合或者子组合的变化。
类似地,尽管在附图中以特定次序描绘了操作,但是这不应该被理解为需要以示出的特定次序或以顺序的次序来执行这样的操作或者需要执行所有示意的操作以实现满意的结果。在某些情况下,多任务和并行处理可能是有利的。另外,在上述实施例中对各种***组件的分离不应该被理解为在所有实施例中要求这样的分离,而是应该理解,所描述的程序组件和***通常能够在单个软件产品中被集成在一起或者被封装成多个软件产品。
因此,已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求中记载的动作能够以不同的次序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定次序或顺序的次序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。
Claims (25)
1.一种使用多个不同的线程下载内容的***,包括:
呈现交互式项目的本机应用;和
延迟减少引擎,所述延迟减少引擎:
检测与链接到第一电子资源和第二电子资源的交互式项目的交互,所述第一电子资源是不同于本机应用并且由第一网络域提供的,所述第二电子资源是用于存储浏览器cookie的cookie资源并且由不同于第一网络域的第二网络域提供的,其中,浏览器cookie存储与由交互式项目链接的电子资源相关的数据、与交互式项目的选择相关的数据和/或与所选择的交互式项目有关的数据;以及
响应于检测,减少呈现第一电子资源中的延迟,包括:
运行第一处理线程,所述第一处理线程:
从不同于第一网络域的第二网络域请求第二电子资源;以及
加载第二电子资源,并响应于加载,存储第二网络域的浏览器cookie;
与第一处理线程并行运行第二处理线程而无需等待第一处理线程完成,所述第二处理线程:
从第一网络域请求第一电子资源;以及
呈现第一电子资源。
2.如权利要求1所述的***,其中加载第二电子资源包括将第二电子资源加载到本机应用的应用内浏览器框架中。
3.如权利要求2所述的***,其中所述应用内浏览器框架与web浏览器应用共享处理浏览器cookie的web浏览器cookie jar。
4.如权利要求1所述的***,其中所述延迟减少引擎:
在呈现第一电子资源之后检测预先指定的用户动作的发生,使用给定电子资源发生预先指定的用户动作;
从浏览器cookie获得数据;以及
使用给定电子资源的web信标发送指定预先指定的用户动作的发生的数据和从所述浏览器cookie获得的数据。
5.一种使用多个不同的线程下载内容的方法,包括:
由客户端设备检测与在客户端设备上运行的本机应用呈现的交互式项目的交互,所述交互式项目链接到不同于本机应用并且由第一网络域提供的第一电子资源和用于存储浏览器cookie的cookie资源并且由不同于第一网络域的第二网络域提供的第二电子资源,其中,浏览器cookie存储与由交互式项目链接的电子资源相关的数据、与交互式项目的选择相关的数据和/或与所选择的交互式项目有关的数据;
响应于检测,减少在客户端设备处呈现第一电子资源中的延迟,包括:
由客户端设备运行第一处理线程,所述第一处理线程:
从不同于第一网络域的第二网络域请求第二电子资源;以及
在客户端设备处加载第二电子资源,并响应于加载,在客户端设备处存储第二网络域的浏览器cookie;
由客户端设备与第一处理线程并行运行第二处理线程而无需等待第一处理线程完成,所述第二处理线程:
从第一网络域请求第一电子资源;以及
呈现第一电子资源。
6.如权利要求5所述的方法,其中,在客户端设备处加载第二电子资源包括将第二电子资源加载到本机应用的应用内浏览器框架中。
7.如权利要求6所述的方法,其中所述应用内浏览器框架与web浏览器应用共享处理浏览器cookie的web浏览器cookie jar。
8.如权利要求5所述的方法,还包括:
在呈现第一电子资源之后检测预先指定的用户动作的发生,使用给定电子资源发生预先指定的用户动作;
从浏览器cookie获得数据;以及
使用给定电子资源的web信标发送指定预先指定的用户动作的发生的数据和从浏览器cookie获得的数据。
9.一种编码有计算机程序的非暂时性计算机存储介质,所述程序包括当由一个或多个数据处理装置运行时使得所述数据处理装置执行包括以下操作的指令:
由客户端设备检测与在客户端设备上运行的本机应用呈现的交互式项目的交互,所述交互式项目链接到不同于本机应用并且由第一网络域提供的第一电子资源和用于存储浏览器cookie的cookie资源并且由不同于第一网络域的第二网络域提供的第二电子资源,其中,浏览器cookie存储与由交互式项目链接的电子资源相关的数据、与交互式项目的选择相关的数据和/或与所选择的交互式项目有关的数据;
响应于检测,减少在客户端设备处呈现第一电子资源的延迟,包括:
由客户端设备运行第一处理线程,所述第一处理线程:
从不同于第一网络域的第二网络域请求第二电子资源;以及
在客户端设备处加载第二电子资源,并响应于加载,在客户端设备处存储第二网络域的浏览器cookie;
由客户端设备与第一处理线程并行运行第二处理线程而无需等待第一处理线程完成,所述第二处理线程:
从第一网络域请求第一电子资源;以及
呈现第一电子资源。
10.如权利要求9所述的非暂时性计算机存储介质,其中在客户端设备处加载第二电子资源包括将第二电子资源加载到所述本机应用的应用内浏览器框架中。
11.如权利要求10所述的非暂时性计算机存储介质,其中所述应用内浏览器框架与web浏览器应用共享处理浏览器cookie的web浏览器cookie jar。
12.如权利要求9所述的非暂时性计算机存储介质,其中,所述操作还包括:
在呈现第一电子资源之后检测预先指定的用户动作的发生,使用给定电子资源发生预先指定的用户动作;
从浏览器cookie获得数据;以及
使用给定电子资源的web信标发送指定预先指定的用户动作的发生的数据和从浏览器cookie获得的数据。
13.一种在通信网络中请求电子资源的方法,包括:
由客户端设备检测与在客户端设备上运行的应用呈现的交互式项目的交互,所述交互式项目与不同于应用并且由通信网络的第一网络域提供的第一电子资源和用于存储浏览器cookie的cookie资源并且由不同于第一网络域的第二网络域提供的第二电子资源相关联,其中,浏览器cookie存储与由交互式项目链接的电子资源相关的数据、与交互式项目的选择相关的数据和/或与所选择的交互式项目有关的数据;
响应于所述检测,由客户端设备运行第一处理线程,其中所述运行包括:
从通信网络的不同于第一网络域的第二网络域请求第二电子资源;以及
在客户端设备处加载第二电子资源,并且响应于加载,在客户端设备处存储第二网络域的浏览器cookie;
所述方法还包括由客户端设备与第一处理线程并行运行第二处理线程而无需等待第一处理线程完成,其中所述运行包括:
从第一网络域请求第一电子资源;以及
向客户端设备提供第一电子资源。
14.如权利要求13所述的方法,其中,在客户端设备处加载第二电子资源包括将第二电子资源加载到应用的应用内浏览器框架中。
15.如权利要求14所述的方法,其中所述应用内浏览器框架与web浏览器应用共享处理浏览器cookie的web浏览器cookie jar。
16.如权利要求13所述的方法,还包括:
在客户端设备处提供第一电子资源之后检测预先指定的用户动作的发生,使用给定电子资源发生预先指定的用户动作;
从浏览器cookie获得数据;以及
使用给定电子资源的web信标发送指定预先指定的用户动作的发生的数据和从浏览器cookie获得的数据。
17.一种使用多个不同的线程下载内容的***,包括:
呈现交互式项目的应用;
延迟减少引擎,所述延迟减少引擎:
检测与应用呈现的交互式项目的交互,所述交互式项目与不同于应用并且由通信网络的第一网络域提供的第一电子资源和用于存储浏览器cookie的cookie资源并且由不同于第一网络域的第二网络域提供的第二电子资源相关联,其中,浏览器cookie存储与由交互式项目链接的电子资源相关的数据、与交互式项目的选择相关的数据和/或与所选择的交互式项目有关的数据;
响应于所述检测,运行第一处理线程,其中所述运行包括:
从通信网络的不同于第一网络域的第二网络域请求第二电子资源;以及
加载第二电子资源,并响应于加载,存储第二网络域的浏览器cookie;
与第一处理线程并行运行第二处理线程而无需等待第一处理线程完成,其中所述运行包括:
从第一网络域请求第一电子资源;以及
提供第一电子资源。
18.如权利要求17所述的***,其中加载第二电子资源包括将第二电子资源加载到应用的应用内浏览器框架中。
19.如权利要求18所述的***,其中所述应用内浏览器框架与web浏览器应用共享处理浏览器cookie的web浏览器cookie jar。
20.如权利要求17所述的***,其中所述延迟减少引擎:
在提供第一电子资源之后检测预先指定的用户动作的发生,使用给定电子资源发生预先指定的用户动作;
从浏览器cookie获得数据;以及
使用给定电子资源的web信标发送指定预先指定的用户动作的发生的数据和从所述浏览器cookie获得的数据。
21.一种编码有计算机程序的非暂时性计算机存储介质,所述程序包括当由一个或多个数据处理装置运行时使得所述数据处理装置执行包括以下操作的指令:
由客户端设备检测与在客户端设备上运行的应用呈现的交互式项目的交互,所述交互式项目与不同于应用并且由通信网络的第一网络域提供的第一电子资源和用于存储浏览器cookie的cookie资源并且由不同于第一网络域的第二网络域提供的第二电子资源相关联,其中,浏览器cookie存储与由交互式项目链接的电子资源相关的数据、与交互式项目的选择相关的数据和/或与所选择的交互式项目有关的数据;
响应于所述检测,由客户端设备运行第一处理线程,其中所述运行包括:
从通信网络的不同于第一网络域的第二网络域请求第二电子资源;以及
在客户端设备处加载第二电子资源,并且响应于加载,在客户端设备处存储第二网络域的浏览器cookie;
还包括由客户端设备与第一处理线程并行运行第二处理线程而无需等待第一处理线程完成,其中所述运行包括:
从第一网络域请求第一电子资源;以及
向客户端设备提供第一电子资源。
22.如权利要求21所述的非暂时性计算机存储介质,其中在客户端设备处加载第二电子资源包括将第二电子资源加载到应用的应用内浏览器框架中。
23.如权利要求22所述的非暂时性计算机存储介质,其中所述应用内浏览器框架与web浏览器应用共享处理浏览器cookie的web浏览器cookie jar。
24.如权利要求21所述的非暂时性计算机存储介质,其中,所述操作还包括:
在客户端设备处提供第一电子资源之后检测预先指定的用户动作的发生,使用给定电子资源发生预先指定的用户动作;
从浏览器cookie获得数据;以及
使用给定电子资源的web信标发送指定预先指定的用户动作的发生的数据和从浏览器cookie获得的数据。
25.一种在通信网络中请求电子资源的方法,包括:
由客户端设备检测与在客户端设备上运行的应用呈现的交互式项目的交互,所述交互式项目与不同于应用并且由通信网络的第一网络域提供的第一电子资源和用于存储浏览器cookie的cookie资源并且由不同于第一网络域的第二网络域提供的第二电子资源相关联,其中,浏览器cookie存储与由交互式项目链接的电子资源相关的数据、与交互式项目的选择相关的数据和/或与所选择的交互式项目有关的数据;
响应于所述检测,由客户端设备运行第一处理线程,其中所述运行包括:
从通信网络的不同于第一网络域的第二网络域请求第二电子资源;以及
在客户端设备处加载第二电子资源,并且响应于加载,在客户端设备处存储用于第二网络域的浏览器cookie;
其中,在客户端设备运行第一处理线程之前,所述方法包括:
由客户端设备运行第二处理线程而无需等待第一处理线程完成,其中,所述运行包括:
从第一网络域请求第一电子资源;以及
向客户端设备提供第一电子资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210544359.XA CN115129443A (zh) | 2016-04-12 | 2016-04-12 | 使用多个线程减少下载电子资源的延迟 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2016/027089 WO2017180106A1 (en) | 2016-04-12 | 2016-04-12 | Reducing latency in downloading electronic resources using multiple threads |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210544359.XA Division CN115129443A (zh) | 2016-04-12 | 2016-04-12 | 使用多个线程减少下载电子资源的延迟 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109074360A CN109074360A (zh) | 2018-12-21 |
CN109074360B true CN109074360B (zh) | 2022-05-03 |
Family
ID=55969454
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680084558.XA Active CN109074360B (zh) | 2016-04-12 | 2016-04-12 | 使用多个线程减少下载电子资源的延迟 |
CN202210544359.XA Pending CN115129443A (zh) | 2016-04-12 | 2016-04-12 | 使用多个线程减少下载电子资源的延迟 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210544359.XA Pending CN115129443A (zh) | 2016-04-12 | 2016-04-12 | 使用多个线程减少下载电子资源的延迟 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10678605B2 (zh) |
EP (1) | EP3443469B1 (zh) |
JP (1) | JP6683835B2 (zh) |
CN (2) | CN109074360B (zh) |
WO (1) | WO2017180106A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11288336B2 (en) * | 2018-04-18 | 2022-03-29 | Google Llc | Systems and methods for providing content items in situations involving suboptimal network conditions |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007096603A2 (en) * | 2006-02-21 | 2007-08-30 | Instant Access Technologies Limited | Delivering/accessing information |
CN101582090A (zh) * | 2009-07-07 | 2009-11-18 | 北京黑米世纪信息技术有限公司 | 一种基于web分析的分布式处理方法和*** |
US9037638B1 (en) * | 2011-04-11 | 2015-05-19 | Viasat, Inc. | Assisted browsing using hinting functionality |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5843947B2 (ja) | 1973-06-12 | 1983-09-30 | 株式会社東芝 | ガンマカイロ |
US6850252B1 (en) * | 1999-10-05 | 2005-02-01 | Steven M. Hoffberg | Intelligent electronic appliance system and method |
US6353813B1 (en) * | 1998-01-22 | 2002-03-05 | Microsoft Corporation | Method and apparatus, using attribute set harmonization and default attribute values, for matching entities and predicting an attribute of an entity |
US6515681B1 (en) * | 1999-05-11 | 2003-02-04 | Prophet Financial Systems, Inc. | User interface for interacting with online message board |
US6868525B1 (en) * | 2000-02-01 | 2005-03-15 | Alberti Anemometer Llc | Computer graphic display visualization system and method |
US7707245B2 (en) * | 2000-02-22 | 2010-04-27 | Harvey Lunenfeld | Metasearching a client's request for displaying different order books on the client |
US6965913B2 (en) * | 2001-04-10 | 2005-11-15 | Virtel Corporation | System for pseudo-interactive internet access |
JP4027119B2 (ja) | 2002-02-26 | 2007-12-26 | 株式会社キューブス | 動画配信装置および方法ならびに動画配信装置を制御するためのプログラム |
US9352222B2 (en) * | 2002-12-10 | 2016-05-31 | Sony Interactive Entertainment America Llc | System and method for capturing text for an online application |
JP2004227280A (ja) | 2003-01-23 | 2004-08-12 | Fujitsu Ltd | 情報処理装置の追跡方法および情報処理装置の追跡システム |
US7603373B2 (en) * | 2003-03-04 | 2009-10-13 | Omniture, Inc. | Assigning value to elements contributing to business success |
US7493622B2 (en) * | 2003-08-12 | 2009-02-17 | Hewlett-Packard Development Company, L.P. | Use of thread-local storage to propagate application context in Java 2 enterprise edition (J2EE) applications |
US9032096B2 (en) * | 2003-12-17 | 2015-05-12 | Cisco Technology, Inc. | Reducing the impact of network latency on application performance |
US7600028B2 (en) * | 2005-01-10 | 2009-10-06 | Google Inc. | Methods and systems for opportunistic cookie caching |
US7921365B2 (en) * | 2005-02-15 | 2011-04-05 | Microsoft Corporation | System and method for browsing tabbed-heterogeneous windows |
US9602613B2 (en) | 2006-08-03 | 2017-03-21 | Flash Networks, Ltd | Method and system for accelerating browsing sessions |
JP5097418B2 (ja) | 2007-03-14 | 2012-12-12 | 株式会社野村総合研究所 | セッション管理装置、プログラム、及び記憶媒体 |
JP2009009334A (ja) * | 2007-06-27 | 2009-01-15 | Ricoh Co Ltd | 画像処理装置、画像処理方法及び画像処理プログラム |
US20090055908A1 (en) * | 2007-08-21 | 2009-02-26 | Narae Enterprises, Inc. | Apparatus and method for accessing user cookies between network domains |
US8131591B2 (en) * | 2007-09-12 | 2012-03-06 | Microsoft Corporation | Updating contents of asynchronously refreshable webpages |
US7925694B2 (en) | 2007-10-19 | 2011-04-12 | Citrix Systems, Inc. | Systems and methods for managing cookies via HTTP content layer |
EP2269145A4 (en) * | 2008-03-14 | 2014-05-21 | Cardinalcommerce Corp | SYSTEM AND METHOD FOR TRACKING USER IDENTITY AND / OR ACTIVITIES ON MULTIPLE WEBSITES |
CN101540734A (zh) * | 2008-03-21 | 2009-09-23 | 阿里巴巴集团控股有限公司 | 一种跨域名Cookie访问方法、***及设备 |
US8756660B2 (en) * | 2008-04-17 | 2014-06-17 | Microsoft Corporation | Enabling two-factor authentication for terminal services |
US8417723B1 (en) * | 2008-09-12 | 2013-04-09 | Salesforce.Com, Inc. | System, method and computer program product for enabling access to a resource of a multi-tenant on-demand database service utilizing a token |
CA2782674C (en) * | 2008-12-03 | 2016-02-02 | Mobophiles, Inc. | System and method for providing virtual web access |
JP5355198B2 (ja) * | 2009-04-20 | 2013-11-27 | 株式会社博報堂 | 実店舗アフィリエイトシステムのコンピューティングの方法 |
US8429287B2 (en) * | 2009-04-29 | 2013-04-23 | Rangecast Technologies, Llc | Network audio distribution system and method |
US8468271B1 (en) * | 2009-06-02 | 2013-06-18 | Juniper Networks, Inc. | Providing privacy within computer networks using anonymous cookies |
US8370908B2 (en) | 2009-06-10 | 2013-02-05 | Microsoft Corporation | Decreasing login latency |
US8626901B2 (en) * | 2010-04-05 | 2014-01-07 | Comscore, Inc. | Measurements based on panel and census data |
US9384283B2 (en) * | 2010-04-19 | 2016-07-05 | Tynt Multimedia Inc. | System and method for deterring traversal of domains containing network resources |
US8539039B2 (en) * | 2010-06-22 | 2013-09-17 | Splashtop Inc. | Remote server environment |
US9043433B2 (en) * | 2010-07-26 | 2015-05-26 | Seven Networks, Inc. | Mobile network traffic coordination across multiple applications |
US8484287B2 (en) | 2010-08-05 | 2013-07-09 | Citrix Systems, Inc. | Systems and methods for cookie proxy jar management across cores in a multi-core system |
US8984164B2 (en) * | 2010-11-09 | 2015-03-17 | Usablenet Inc. | Methods for reducing latency in network connections and systems thereof |
US9083583B1 (en) * | 2011-07-01 | 2015-07-14 | Google Inc. | Latency reduction via adaptive speculative preconnection |
US9344505B1 (en) * | 2011-09-20 | 2016-05-17 | Amazon Technologies, Inc. | Transferring cookie data to another domain |
US9152970B1 (en) * | 2011-09-27 | 2015-10-06 | Amazon Technologies, Inc. | Remote co-browsing session management |
US9313100B1 (en) * | 2011-11-14 | 2016-04-12 | Amazon Technologies, Inc. | Remote browsing session management |
US10165036B1 (en) * | 2011-12-21 | 2018-12-25 | Amazon Technologies, Inc. | Network resource remote process execution |
JP2013196063A (ja) * | 2012-03-16 | 2013-09-30 | Cellant Corp | クッキー共有プログラム、クッキー共有機能を備えたWebサーバ、クッキー共有システム及びクッキーの共有方法 |
US9722851B1 (en) * | 2012-03-27 | 2017-08-01 | Amazon Technologies, Inc. | Optimized retrieval of network resources |
US9727534B1 (en) * | 2012-06-18 | 2017-08-08 | Bromium, Inc. | Synchronizing cookie data using a virtualized browser |
US11188652B2 (en) * | 2012-10-02 | 2021-11-30 | Mordecai Barkan | Access management and credential protection |
US10095663B2 (en) * | 2012-11-14 | 2018-10-09 | Amazon Technologies, Inc. | Delivery and display of page previews during page retrieval events |
US8843827B2 (en) * | 2013-01-22 | 2014-09-23 | Tealium Inc. | Activation of dormant features in native applications |
KR101523204B1 (ko) | 2013-01-24 | 2015-05-28 | 주식회사 이루온 | 광고 제공 시스템 및 방법 |
US9503499B1 (en) * | 2013-03-07 | 2016-11-22 | Amazon Technologies, Inc. | Concealing latency in display of pages |
US20150046558A1 (en) | 2013-03-15 | 2015-02-12 | Google Inc. | System and method for choosing lowest latency path |
US9787687B2 (en) * | 2013-04-10 | 2017-10-10 | Spotify Ab | Systems and methods for efficient and secure temporary anonymous access to media content |
US9723051B2 (en) | 2013-08-13 | 2017-08-01 | Criteo Sa | Setting first-party cookies by redirection |
JP6030081B2 (ja) * | 2014-03-03 | 2016-11-24 | ヤフー株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
US9723057B2 (en) * | 2014-09-25 | 2017-08-01 | Oracle International Corporation | Reducing web page load latency by scheduling sets of successive outgoing HTTP calls |
GB2534831A (en) * | 2014-09-26 | 2016-08-10 | Affectv Ltd | Storing cookie mappings |
US9807592B2 (en) * | 2014-11-13 | 2017-10-31 | Intel Corporation | Context-aware resource management for video streaming services |
JP5843947B1 (ja) * | 2014-11-25 | 2016-01-13 | デジタル・アドバタイジング・コンソーシアム株式会社 | クッキー情報の変換装置、方法及びプログラム |
CN105743945B (zh) * | 2014-12-10 | 2019-03-29 | 广州市动景计算机科技有限公司 | 基于切换下载源的文件下载方法及*** |
US9736246B1 (en) * | 2015-02-19 | 2017-08-15 | Amazon Technologies, Inc. | Cross-device synchronization system for account-level information |
US10243957B1 (en) * | 2015-08-27 | 2019-03-26 | Amazon Technologies, Inc. | Preventing leakage of cookie data |
-
2016
- 2016-04-12 CN CN201680084558.XA patent/CN109074360B/zh active Active
- 2016-04-12 WO PCT/US2016/027089 patent/WO2017180106A1/en active Application Filing
- 2016-04-12 EP EP16722726.3A patent/EP3443469B1/en active Active
- 2016-04-12 JP JP2018553482A patent/JP6683835B2/ja active Active
- 2016-04-12 US US15/034,074 patent/US10678605B2/en active Active
- 2016-04-12 CN CN202210544359.XA patent/CN115129443A/zh active Pending
-
2020
- 2020-03-31 US US16/836,319 patent/US11550638B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007096603A2 (en) * | 2006-02-21 | 2007-08-30 | Instant Access Technologies Limited | Delivering/accessing information |
CN101582090A (zh) * | 2009-07-07 | 2009-11-18 | 北京黑米世纪信息技术有限公司 | 一种基于web分析的分布式处理方法和*** |
US9037638B1 (en) * | 2011-04-11 | 2015-05-19 | Viasat, Inc. | Assisted browsing using hinting functionality |
Also Published As
Publication number | Publication date |
---|---|
EP3443469B1 (en) | 2021-06-02 |
CN115129443A (zh) | 2022-09-30 |
JP6683835B2 (ja) | 2020-04-22 |
CN109074360A (zh) | 2018-12-21 |
US10678605B2 (en) | 2020-06-09 |
US20200225998A1 (en) | 2020-07-16 |
WO2017180106A1 (en) | 2017-10-19 |
US20190026161A1 (en) | 2019-01-24 |
US11550638B2 (en) | 2023-01-10 |
JP2019514129A (ja) | 2019-05-30 |
EP3443469A1 (en) | 2019-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2011101576B4 (en) | Method and systems for generating and displaying a preview image of a content area | |
US10394909B2 (en) | Reducing redirects | |
CN109074263B (zh) | 移动应用活动检测器 | |
US9547721B2 (en) | Native application search results | |
US8606955B1 (en) | Pause-button content rendering | |
CN106170814B (zh) | 用于将用户与社交数据匹配的***和方法 | |
US20170323361A1 (en) | Rapid re-hosting of collaborative browsing sessions | |
US9059959B2 (en) | Client side management of HTTP sessions | |
US10868881B1 (en) | Loading web resources using remote resource pushing | |
US9369544B1 (en) | Testing compatibility with web services | |
US20190205108A1 (en) | System and method for providing software applications | |
US11550638B2 (en) | Reducing latency in downloading electronic resources using multiple threads | |
US10027598B2 (en) | Providing network resources based on available user information | |
US20160350094A1 (en) | Application download emulation | |
JP2024500300A (ja) | 情報インタラクション方法、装置、及び機器 | |
JP7104091B2 (ja) | 複数のスレッドを使って電子リソースをダウンロードする際の待ち時間の削減 | |
US10698698B2 (en) | System and method for initializing software applications | |
CN111381993A (zh) | 数据包的处理方法、装置以及电子设备 | |
EP2908499A1 (en) | Method, system and software product for delivering interactive invitational content into mobile phone applications |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |