CN112913195A - 渐进式api响应 - Google Patents

渐进式api响应 Download PDF

Info

Publication number
CN112913195A
CN112913195A CN201980061339.3A CN201980061339A CN112913195A CN 112913195 A CN112913195 A CN 112913195A CN 201980061339 A CN201980061339 A CN 201980061339A CN 112913195 A CN112913195 A CN 112913195A
Authority
CN
China
Prior art keywords
content item
content items
content
response
segment
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
Application number
CN201980061339.3A
Other languages
English (en)
Inventor
J·A·德贝
A·阿萨尔
A·S·格雷瓦尔
R·M·E·洛腾
N·奥布莱恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Twitter Inc
Original Assignee
Twitter Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Twitter Inc filed Critical Twitter Inc
Publication of CN112913195A publication Critical patent/CN112913195A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/44Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/234Monitoring or handling of messages for tracking messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/538Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Library & Information Science (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

用于增量地接收和绘出内容项的方法、系统和被编码在计算机存储介质上的计算机程序。一种示例系统包括服务器、用户设备以及运行在用户设备上的客户端。客户端向服务器发送内容请求。客户端增量地在多个片段中接收对内容请求的响应。多个片段构成整个响应。片段包括内容项和描述内容项的元数据,并且每个内容项是可绘出的并且由一个或多个数据对象定义。在片段被接收时,客户端增量地将片段中的内容项绘出在显示缓冲区中。内容项以由元数据确定的次序被绘出。客户端将显示缓冲区的全部或者部分显示在用户设备的显示器上。

Description

渐进式API响应
背景技术
本说明书涉及社交消息接发平台,并且特别地,涉及用于增量地接收并且绘出来自社交消息接发平台的对内容请求的响应的片段的技术。
社交消息接发平台和网络连接的个人计算设备允许用户跨多个设备实时地创建和共享内容。
流行的社交消息接发平台通常向用户提供功能性以既有同步地也有异步地向其他用户起草和发布消息。流行的社交消息接发平台包括Facebook、Pinterest和Twitter。(“Facebook”是Facebook,Inc.的商标,“Pinterest”是Pinterest,Inc.的商标,“Twitter”是Twitter,Inc.的商标)。
通常,当计算设备上的客户端软件向社交消息接发平台发送内容请求时,在向设备的用户呈现响应中的任何响应之前,该客户端软件必须等待接收对该请求的完全响应,
发明内容
本说明书描述了一种技术,该技术使客户端能够接收并且绘出来自社交消息接发平台的对内容请求的响应的片段。
一种示例系统包括被配置为实现社交消息接发平台的服务器、用户设备、以及运行在用户设备上的社交消息接发平台的客户端软件。该客户端软件被配置为向服务器发送内容请求。该客户端软件从用户设备上的网络栈的传输层增量地在多个片段中接收来自服务器的对内容请求的响应。该多个片段构成整个响应。该响应包括多个内容项和描述多个内容项的元数据。每个内容项是可绘出的并且由一个或多个数据对象定义。在片段被接收时,客户端软件增量地将片段中的多个内容项绘出到显示缓冲区中。这包括将多个内容项以由元数据确定的次序放置在显示缓冲区中。显示缓冲区是用户设备的存储器中的数据结构。客户端软件然后将显示缓冲区的全部或者部分显示在用户设备的显示器上。
本说明书结合系统、装置以及其他程序组件使用术语“被配置为”。对于一个或多个计算机的系统被配置为执行特定的操作或动作意味着该系统已经在其上安装了软件、固件、硬件或其组合,这些软件、固件、硬件或其组合在操作中使该系统执行该操作或动作。对于一个或多个计算机程序被配置为执行特定的操作或动作意味着该一个或多个程序包括以下指令:该指令在由数据处理装置执行时,使得该装置执行操作或动作。对于专用逻辑电路被配置为执行特定的操作或动作意味着该电路具有执行该操作或动作的电子逻辑。
本申请中所描述的主题可以在特定实施例中被实现,以便实现以下优势中的一个或多个优势。低带宽连接上的用户设备可以在整个响应被接收到之前渐进地绘出响应中的内容项。这是有优势的,因为在低带宽的连接上,接收整个响应可能花费若干往返,即,TCP连接递送整个响应的有效载荷所花费的往返的数目。
同时,高带宽连接上的用户设备可以在单个往返中接收并且绘出小的响应和大的响应两者。换而言之,无论用户的带宽,本说明书中所描述的主题优化响应时间。
本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。该主题的其他特征、方面以及优势将从描述、附图和权利要求书变得明显。
附图说明
图1是示例社交消息接发平台的图解。
图2是用于组织对内容请求的响应的示例过程的流程图。
图3是用于增量地接收和绘出对内容请求的响应的片段的示例过程的流程图。
图4是用于接收和绘出跨越响应的两个以上片段的内容项的示例过程的流程图。
各个附图中相同的附图标记和标志指示相同的元素。
具体实施方式
图1图示了示例在线社交消息接发平台100和示例用户设备104a-104n,示例用户设备104a-104n被配置为通过一个或多个有线或无线的数据通信网络120与该平台通信。如稍后将描述的,被实现在客户端软件106a-106n中的渐进式绘出模块108a-108n被配置为增量地接收并且绘出来自平台服务器的内容项(例如,消息)。
平台的用户102a-102n使用在其上安装了客户端软件的用户设备104a-104n来使用平台。使用其相应的用户设备上相应的客户端软件,用户可以与社交消息接发平台交互。
用户可以是平台上账户的账户持有者,或者账户的经授权的用户。平台可以具有个成百万的个人、企业或其他实体的账户。
在一些实现中,平台允许由不是账户持有者或者未登陆到该平台的账户的用户使用该平台。如果平台允许由这样的用户使用,则该平台可以通过将用户与暂时的账户或标识符相关联来允许这样的用户发布消息或者使用该平台的其他功能性。
用户设备可以是任何互联网连接的设备,例如,膝上型或桌面计算机、智能电话、或者电子平板。用户设备可以通过移动网络、通过互联网服务供应商(ISP)、或者以其他方式被连接到互联网
每个用户设备被配置为具有软件,该软件被称为客户端或者客户端软件106a-106n,其在操作中可以访问平台,以使得用户可以发布和接受消息、查看和编策用户的流、以及查看内容项的列表并且与之交互。在任何特定的用户设备上,客户端可以是网络浏览器或者由网络浏览器绘出的HTML(超文本标记语言)文档。或者客户端可以是或者包括JavaScript代码或Java代码。或者客户端也可以是专用软件,例如,被特别设计来与平台一起工作的被安装的app或者被安装的应用。或者客户端可以是或者包括例如短消息服务(SMS)接口、即时消息接发接口、基于电子邮件的接口、或者基于API功能的接口。
客户端在用户设备的显示器上的图形用户界面的窗口中显示所有或部分的显示缓冲区,包括来自平台的消息和流。显示缓冲区是包含被用于驱动用户设备的显示器的数据(例如,位图)的存储器的一部分。显示缓冲区中的消息和流可以是以被绘出的位图形式,或者它们也可以是以部分地被绘出或者被预处理的形式,当它们移动到显示视口(viewport)时,该部分地被绘出或者被预处理的形式可以在飞行中(on the fly)被绘出。
客户端的图形用户界面可以包括滚动元素或滚动功能性。滚动元素是一个控件,该空间接收来自客户端的用户的输入。例如,如果用户设备是具有鼠标的台式计算机,则用户可以点击和拖动滚动元素。如果用户设备是智能电话,则用户可以简单地使用手指滑动用户设备的屏幕。响应于单击和拖动或者滑动,客户端改变显示缓冲区的哪个部分由客户端显示。
客户端包括渐进式绘出模块108a-108n。渐进式绘出模块被配置为在内容项的片段被接收时增量地接收并且渐进地绘出那些片段。
在线社交消息接发平台在一个或多个位置中的一个或多个计算机上被实现,这些计算机作为支持来自许多不同种类的用户设备的通过有线或无线网络120的连接一个或多个服务器而操作。该平台可能具有数百万的帐户,并且在任何给定时刻,在客户端与平台之间数十万至数万个连接可以被建立或者在使用中。
平台和客户端被配置为使用户能够使用平台将消息122发布到平台,并且使用平台来接收由其他用户发布的消息124。
在一些实现中,平台为用户提供设施来直接向平台的一个或多个其他用户发送消息,这允许发送方和接收方维持消息的私密交换。
平台被配置为在主页馈送(home feed)消息流中向用户提供内容,通常是消息。该消息一般将是来自用户正在追随(follow)的账户的消息,这意味着接收者已经注册以接收由被追随账户发布的消息,以及可选地这样的账户已经参与的内容,例如,已拥护(endorse)。可选地,平台被配置为在接收者用户的主页馈送消息流中包括平台确定接收者可能感兴趣的消息,例如,关于特定的当前兴趣的话题的消息,如由平台用户发布的关于该话题的消息的数目表现的,或者关于接收者明显感兴趣的话题而被发布的消息,如由接收者已经发布或者参与的消息表现的,以及经选择的广告、公共服务声明、宣传内容等。
平台被配置为使用户能够实时交换消息,既,在最小延迟的情况下。平台还被配置为使用户能够响应更早被发布的消息,大约数小时或数天甚至更长。该平台被配置为在短时间内向一个或多个其他用户显示被发布的消息,以便促进用户之间的本质上的直播对话。
平台还被配置为允许用户搜索平台上的内容。搜素可以从多个已追随的或公开的账户返回满足一个或多个搜索标准(例如,一个或多个搜索术语或关键短语)的消息。平台还被配置为允许用户搜索其他用户的账户。
因此,平台的基本消息接发功能性至少包括发布新消息,根据客户端请求提供消息流,管理账户,管理账户、消息和流之间的连接,以及从客户端接收参与数据,该参与数据指示客户端的用户已经如何参与消息以及可能地其他内容。平台还索引内容项以及表征用户对内容的访问的访问数据,并且可以向账户持有者提供经索引的数据。
通常,被发布到平台的消息包含表示由消息的作者提供的内容的数据。消息可以是存储内容数据的容器数据类型的实例。可以被存储在消息中的数据的内容包括例如文本、图形、图像、视频以及计算机代码(例如,统一资源定位符(URL))。消息还可以包括可以协助分类消息或者将消息联系到话题的关键短语(例如,哈希标签)。消息还可以包括可以或不可以由消息作者账户持有者可编辑的元数据,取决于平台准许什么。消息元数据的示例包括著作时间和日期以及当用户设备提交消息时其地理位置。在一些实现中,客户端向平台提供什么元数据通过由隐私设置确定,该隐私设置由用户或账户持有者控制。
由一个账户持有者创作的消息可以引用其他账户、其他消息或两者。例如,作为对由另一账户创作的另一消息的和回复,消息可以被创作。消息也可以由用户创作作为对最初由该用户发布的消息的回复。消息还可以是对由另一账户创作并从另一账户被接收的消息的重新发表。通常,在消息中被引用的账户可以作为消息中可见的内容(例如,账户的名称)出现,并且也可以作为消息中的元数据出现。作为结果,被引用的账户在平台中可以是交互式的。例如,用户可以与出现在其消息流中的账户名称交互,以导航到那些账户的消息流。平台还允许用户将特定的消息指定为私密的;私密的消息将仅在创作的账户和接收者账户的消息流中出现。
通常,消息是微博客发布,其以若干方式不同与电子邮件消息,例如,微博客发布的作者不一定需要指定、或者甚至知晓谁将是将是消息的接收者。
流是平台上满足一个或多个消息标准的消息的流。流可以由流标准定义,以包括由一个或多个账户发布的消息。例如,针对请求的账户持有者的流的内容可以包括以下一项或多项:(i)由该账户持有者创作的消息;(ii)由所请求的账户持有者追随的其他账户创作的消息;(iii)由引用所请求的账户持有者的其他账户创作的消息;或者(iv)由第三方赞助以包括在账户持有者的消息流中的消息。流的消息可以根据著作的时间和日期按时间顺序被排序,也可以按反向时间顺序排列。流还可以以其他方式被排序,例如,根据计算性地被预测的与账户持有者的相关性,或者根据时间和相关性得分的某种组合。
流可以潜在地包括大量消息,为处理效率和请求的账户持有人的查看方便两者起见,账户通常标识一旦流被生成就将向请求的客户端发送的满足流标准的消息的子集。流中的消息的剩余被维持在流存储库中,并且可以通过客户端请求而被访问。
通过例如前端服务器,平台服务器110a-110m上的递送模块112a-112m构造消息流并且向请求的客户端提供这些消息流。响应于针对流的请求,相应的递送模块或者实时地构造流,或者从流服务器访问已经被生成的流的一些或全部。递送模块将被生成的流存储在流存储库中。账户持有者可以请求他们自己的流中的任何流、或者他们基于安全性设置而被准许访问的任何其他账户的流。如果流包括大量消息,则递送模块通常标识将向请求的客户端发送的消息的子集,在该情况下消息的剩余被维持在流存储库中并且响应于客户端请求而被发送。
递送模块可以以这样的方式来组织对内容请求的响应:响应的片段可以由客户端增量地接收、绘出并且显示。将参考图2更消息地描述该过程。
图2是用于组织对内容请求的响应的示例过程200的流程图。该过程可以由图1的在线社交消息接发平台的平台服务器执行。更具体地,该过程可以由平台服务器上的递送模块执行。
递送模块获取响应于来自客户端的内容请求的内容项和描述那些内容项的元数据(210)。
递送模块将描述内容项的元数据放置在响应的初始片段中(220)。元数据可以包括针对每个内容项的序列标识符。序列标识符指定内容项在用户设备的显示缓冲区中相对于其他内容项应当被绘出的位置。因为元数据在响应的初始片段中,所以客户端可以该客户端接收到响应中的所有内容项之前,在显示缓冲区中的指定位置中绘出内容项。
递送模块将内容项放置在元数据之后(230)。更具体地,其将绘出每个内容项所必需的数据放置在定义内容项的一个或多个数据对象中、或者定义响应中内容项之前的内容项的数据对象中。通过以这种方式组织数据,递送模块确保客户端到该客户端接收任何给定的内容项的时间为止,接收到其绘出该内容项需要的所有数据。因此,客户端可以在所有内容项被接收之前,绘出并且显示一个或多个内容项。
图3用于增量地绘出内容项的示例过程300的流程图。该过程可以由用户设备上的客户端执行。
客户端向主机服务器发送针对内容的请求(310)。
主机服务器向客户端发送结构化的响应。在感兴趣的场景中,客户端接收多个片段中的响应,这些片段一起构成整个响应(320)。客户端在用户设备上的网络栈(例如,从传输层)向客户端提供整个响应之前,从网络栈获取片段。
网络栈的传输层是软件的若干层中的一个层,这些层一起向运行在用户设备上的应用提供数据通信服务。特别地,传输层实现为应用提供主机到主机通信服务的一组协议。传输层协议的一个示例是传输控制协议(TCP)。另一示例是用户数据报协议(UDP)。取决于被使用的特定协议,由客户端获取的片段由一个或多个分段或者一个或多个数据报组成。
响应的片段包含内容项和描述内容项的元数据。每个内容项可绘出用于显示并且由一个或多个数据对象定义。例如,特定的内容项可以由JavaScript对象表示法(“JSON”)对象。JSON是用于序列化组织化的数据的文本格式。其使用人类可读文本来传输由属性-值对和阵列数据类型组成的数据对象。
描述内容项的元数据可以包括针对每个内容项的序列标识符。针对特定内容项的序列标识符指定该内容项在显示缓冲区中相对于响应中的其他内容项、以及相对于在显示缓冲区中先前被绘出的响应中的其他内容项的地方。例如,序列标识符可以指定内容项应当被绘出在显示缓冲区中在第一内容项“下方”并且在第二内容项“上方”。在一些实现中,序列标识符是基于或者是与内容项相关联的时间戳。该时间戳可以指示内容项相对于其他内容项被创建的时间。在这种情况下,内容项可以按时间顺序或反向时间顺序被放置在显示缓冲区中。
备选地,针对内容项的序列标识符可以基于以下估计:用户将有多可能喜欢该内容项或者与该内容项交互。例如,社交消息接发平台可以确定,相比第二内容项,特定的用户更可能喜欢第一内容项或者与第一内容项交互。在这样的情况下,针对第一内容项的序列标识符可以指定其应被放置在第二内容项“上方”,因此用户将更可能看见它,或者首先看见它。主机服务器可以通过分析用户先前与类似内容项的交互来确定用户将喜欢特定内容项或者与特定内容项交互的可能性。
当片段被获取时,客户端增量地将片段中的内容项以由元数据确定的显示缓冲区中的次序绘出到显示缓冲区中(330)。
内容项中的每个内容项单独地可绘出。换而言之,绘出响应中的每个内容项所必需的数据被包含在定义内容项的一个或多个数据对象中、或者在响应中被发现更早的数据中(例如,现在的片中更早的或者在响应的先前被接收的片段中)。因此客户端可以在其接收到整个响应之前绘出单独的内容项。
在一些实现中,客户端接收响应的初始片段中的元数据,并且除了针对响应中每个内容项的相应的序列标识符以外还包括响应中的内容项的总计数。使用该信息,客户端可以绘出初始片段中的内容项,并且在显示缓冲区中包括针对响应的后续片段中的每个内容项的相应的占位符。稍后,客户端可以在绘出来自后续片段的内容项时替换占位符。客户端可以在显示缓冲区中对应的内容项将出现之处(例如,由内容项的序列标识符定义的地方)创建占位符。
在绘出内容项中,客户端通常标识数据对象或定义内容项的对象的开头,并且随后标识数据对象或定义内容项的对象的结尾。在一些情况下,数据对象或者定义特定内容项的对象完全被包含在相应的单个片段中。在其他情况下,它们跨越两个以上片段。
最终,客户端将显示缓冲区的所有或部分显示在用户设备的显示器上(340)。在显示缓冲区具有占位符的实现中,客户端可以显示那些占位符以向用户指示一些内容项仍然必须被绘出。当被显示时,占位符优选地具有固定的垂直高度,而传入的内容项通常具有可变的垂直高度。当客户端以内容项替换占位符时,客户端可以通过在远离视口的方向上扩展显示缓冲区的大小来确保视口中的项不会垂直移位。即是说,如果占位符在视口上方,则客户端可以使显示缓冲区向上扩大。如果占位符在视口下方,则客户端可以使显示缓冲区向下扩大。客户端可以基于用户输入(例如,基于对客户端的用户界面的滚动输入)来确定将显示显示缓冲区的什么部分。
在一些实现中,客户端插入并且显示单个占位符而不是多个邻接的占位符。
图4是用于绘出跨越响应的两个以上片段的内容项的示例过程400的流程图。过程400可以由在用户设备上运行的客户端执行。
客户端获取响应的下一片段(410)。客户端确定片段是否包括新内容项的初始部分(420)。客户端可以通过在片段中搜索数据对象标识符来做出该确定。例如,如果内容项由JSON对象定义,则客户端可以在片段中搜索指示JSON对象开头的前花括号。如果片段不包括新内容项的初始部分,则客户端获取响应的下一片段(410)。
如果片段确实包括新内容项的初始部分,则客户端确定所获取的片段(即,当前片段)和先前所获取的片段是否包括整个新内容项(430)。即是说,客户端确定其是否已经获取了新内容项的所有部分。客户端可以在片段中搜索数据对象标识符以做出该确定。
如果客户端确定其尚未获取新内容项的所有部分,则其获取响应的下一片段(440),并且再次确定该下一片段和先前所获取的片段是否包括整个新内容项(430)。因为内容项可以跨越响应的两个以上片段,所以客户端可能会重复该过程数次。
如果客户端确定其已经获取了新内容项目的所有部分,则其组装那些部分(450)。客户端可以在接收到这些部分时组装它们,或者客户端可以在其接收到所有部分后一次组装它们所有。在一些情况下,内容项可能完全被包含在响应的单个片段中。在这样的情况下,不需要组装。
客户端在用户设备上的显示缓冲区中绘出被组装的内容项(460)。此后,客户端确定当前片段是否包括新内容项的任何部分(420),因为单个片段可以包含多个内容项。如果否,则客户端获取响应的下一片段(410)。
在一些情况下,虽然客户端增量地接收和绘出数据,但是响应可能会部分地失败。例如,在客户端仅接收到二十个内容项之后,具有一百个内容项的响应可能会失败。例如,如果传输层协议是UDP,则这样的故障可能发生。UDP不要求通信通道,因此容易受到底层网络的不可靠性的影响。
当这发生时,在一些实施例中,内联地示出错误,即,错误被显示在剩余的八十个内容项不然会已被显示处。客户端的用户可以在图形用户界面中与该错误消息交互,以重试加载剩余的八十个内容项。
如果客户端接收到畸形的内容项,即,如果客户端接收到具有丢失的数据的内容项,则客户端可以静默地丢弃该内容。
本说明书中所描述的主题的实施例以及动作和操作可以被实现在数字电子电路中、有形地体现的计算机软件或固件中、计算机硬件中,包括在本说明书中所公开的结构及其结构性等效体,或者其中的一个或多个的组合中。本说明书中所描述的主题的实施例可以被实现为一个或多个计算机程序,即,用于由数据处理装置执行或者控制数据处理装置的操作的、被编码在有形的非瞬态存储介质上的计算机程序指令的一个或多个模块。备选地或附加地,程序指令可以被编码在人工生成的传播的信号上,例如,机器生成的电、光或电磁信号,该信号被生成以编码信息以供传输到合适的接收器装置来由数据处理装置执行。该计算机存储介质可以是以下或者以下的部分:机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备、或者其中的一个或多个的组合。计算机存储介质不是传播的信号。
术语“数据处理装置”涵盖用于处理数据的所有种类的设备、装置和机器,例如包括可编程处理器、计算机、或者多个处理器或计算机。数据处理装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)、ASIC(专用集成电路)或GPU(图形处理单元)。除了硬件之外,该装置还可以包括创建用于计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者其中的一个或多个的组合的代码。
计算机程序,也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码可以以任何形式的编程语言来编写,包括经编译的或经解译的语言、或者声明性或过程性语言;并且其可以以任何形式被部署,包括作为独立程序或者作为适合用于在计算环境中执行的模块、组件、引擎、子例程或者其他单元,该环境可以包括一个或多个位置中的通过数据通信网络被互连的一个或多个计算机。
计算机程序可以、但是不必对应于文件系统中的文件。计算机程序可以被存储在持有其他程序或数据的文件的部分中,例如,被存储在标记语言文档中的一个或多个脚本、专用于问题中的程序的单个文件中、或者多个经协调的文件中,例如,存储一个或多个模块、子程序或代码的部分的文件。
本说明书中所描述的过程和逻辑流可以由一个或多个计算机执行,该一个或多计算机执行一个或多个计算机程序,以通过在输入数据上操作并且生成输出来执行操作。这些过程和逻辑流还可以由专用逻辑电路(例如,FPGA、ASIC或GPU)、或者由专用逻辑电路和一个或多个经编程的计算机的组合执行。
适合用于执行计算机程序的计算机可以基于通用或专用微处理器或者两者,或者基于任何其他种类的中央处理器。通常,中央处理单元将从只读存储器或者随机存取存储器或者两者接收指令和数据。计算机的基本元件是用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以由专用逻辑电路补充或者并入专用逻辑电路中。
通常,计算机还将包括、或者可操作地耦合,以从一个或多个大容量存储设备接收数据或者向一个或多个大容量存储设备传输数据。大容量存储设备可以是例如磁盘、磁光盘或光盘,或者固态驱动。但是,计算机不必具有这样的设备。此外,计算机可以被嵌入到另一设备中,例如,仅举几例,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器、或者便携式存储设备(例如通用串行总线(USB)闪存驱动)。
为了提供与用户的交互,本说明书中所描述的主题的实施例可以在以下计算机上被实现或者被配置为与该计算机通信:该计算机具有显示设备(例如LCD(液晶显示器)监视器)以向用户显示信息,以及输入设备(例如键盘和指点设备,例如鼠标、轨迹球或触摸板),用户可通过该输入设备向计算机提供输入。其他种类的设备也可以被用于提供与用户的交互,例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以以任何形式被接收,包括声学、语音或触觉输入。另外,计算机可以通过向由用户使用的设备发送文档和从由用户使用的设备接收文档来与用户交互,例如,通过响应于从用户设备上的网络浏览器所接收的请求向该网络浏览器发送请求,或者通过与用户设备(例如,智能电话或电子平板)上运行的app交互。同样,计算机可以通过向个人设备(例如,运行消息接发应用的智能电话)文本消息或其他形式的消息并且作为回报从用户接收响应的消息来与用户交互。
本说明书中所描述的主题的实施例可以在包括后端组件(例如,作为数据服务器)、或包括中间件组件(例如,应用服务器)的计算系统中、或包括前端组件(例如,具有图形用户界面的客户端计算机、web浏览器、或者用户可以通过其与本说明书中所描述的主题的实现交互的app)的计算系统中被实现、或者在一个或多个这样的后端、中间件、或前端组件的任何组合中被实现。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)而被互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
该计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络交互。客户端和服务器之间的关系是凭借在相应的计算机上运行并且与彼此具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器向用户设备传输数据(例如,HTML页面),例如,用于向与充当客户端的与该设备交互的用户显示数据并且从该用户接收用户输入的目的。在用户设备处生成的数据(例如,用户交互的结果)可以从该设备在服务器从被接受。
除了上述实施例之外,以下实施例也是创新的:
实施例1是由运行在用户设备上的社交消息接发平台的客户端软件执行的方法,该方法包括:
向服务器发送内容请求,该服务器包括一个或多个计算机和一个或多个存储设备的服务器,该服务器被配置为实现社交消息接发平台;
从用户设备上的网络栈的传输层增量地在多个片段中接收来自服务器的对内容请求的响应,其中多个片段构成整个响应,其中响应包括多个内容项和描述多个内容项的元数据,并且其中每个内容项是可绘出的并且由一个或多个数据对象定义;
在片段被接收时,增量地将片段中的多个内容项绘出到显示缓冲区中,包括将多个内容项以由元数据确定的次序放置在显示缓冲区中,显示缓冲区是用户设备的存储器中的数据结构;以及
将显示缓冲区的全部或者部分显示在用户设备的显示器上。
实施例2是实施例1的方法,其中客户端软件是独立app或者在被安装在用户设备上的web浏览器中运行的JavaScript程序。
实施例3是实施例1-2中的任何实施例的方法,其中描述多个内容项的元数据针对每个内容项包括序列标识符,该序列标识符指定该内容项在显示缓冲区中相对于响应中的其他内容项、以及相对于在显示缓冲区中先前被绘出的多个响应中的多个内容项的地方。
实施例4是实施例3的方法,其中针对相应的内容项的序列标识符对应于内容项相对于其他内容项被创建的时间。
实施例5是实施例1-4中的任何实施例的方法,其中元数据在响应的初始片段中被接收并且包括响应中的多个内容项的总计数,并且其中方法还包括:
在显示缓冲区中绘出初始片段中的多个内容项,并且在显示缓冲区中包括针对响应的后续片段中的每个内容项的相应的占位符;以及
在绘出后续片段中的多个内容项时替换相应的占位符。
实施例6是实施例5的方法,其中元数据针对每个内容项还包括序列标识符,并且其中相应的占位符在显示缓冲区中由相应的占位符的对应的内容项的序列标识符指定的地方中被创建。
实施例7是实施例1-6中的任何实施例的方法,其中在片段被接收时增量地绘出片段中的多个内容项包括:
确定第一片段仅包括特定内容项的初始部分;
接收包括特定内容项的其余部分的第二片段;
组装特定内容项的初始部分和其余部分;以及
在显示缓冲区中绘出经组装的内容项。
实施例8是实施例7的方法,其中一个或多个数据对象是JSON对象,并且其中在片段被接收时增量地绘出片段中的多个内容项包括针对每个内容项:
标识定义内容项的JSON对象的开头;并且
标识定义内容项的JSON对象的结尾。
实施例9是实施例1-8中的任何实施例的方法,其中响应的片段中的每个片段包括通过传输层协议向客户端软件提供的一个或多个传输层分段。
实施例10是实施例1-9中的任何实施例的方法,其中在每个响应中,绘出响应中的每个内容项所必需的数据被包含在定义内容项的一个或多个数据对象中、或者在定义响应中先前被接收的多个内容项的一个或多个数据对象中。
实施例11是实施例1-10中的任何实施例的方法,其中服务器是远程服务器。
实施例12是一种系统,包括:
包括一个或多个计算机和一个或多个存储设备的服务器,该服务器被配置为实现社交消息接发平台;
用户设备;以及
运行在用户设备上的社交消息接发平台的客户端软件,
其中用户设备被配置为执行实施例1-11中的任何一个实施例的方法。
实施例13是存储指令的一个或多个存储介质,该指令当由一个或多个计算机执行时可操作以使得该一个或多个计算机执行实施例1-11中的任何一个实施例的方法。
实施例14是一种系统,包括:
被配置为实现社交消息接发平台的一个或多个计算机和一个或多个存储设备,该一个或多个存储设备存储指令,该指令在由一个或多个计算机执行时使得该一个或多个计算机执行操作,包括:
接收来自社交消息接发平台的客户端软件的内容请求,该客户端软件在用户设备上运行;
获取(i)对应于内容请求的多个内容项,(ii)描述多个内容项的元数据,以及(iii)绘出多个内容项所必需的数据,其中描述多个内容项的元数据针对每个内容项包括序列标识符,该序列标识符指定内容项在用户设备的显示缓冲区中相对于其他内容项应当被绘出的位置;
生成对内容请求的响应,包括:
将元数据放置在响应的初始片段中,以及
将绘出每个内容项所必需的数据放置在定义内容项的一个或多个数据对象中、或者在定义响应中在该内容项之前的内容项的一个或多个数据对象中;以及
向客户端软件发送响应。
尽管本说明书包含许多特定的实现细节,但是这些细节不应被解释为对任何发明范围或者所要求保护的范围的限制,而是对可能特定于具体发明的具体实施例的特征的描述。本说明书中在单独的实施例的上下文中所描述的某些特征也可以在单个实施例中组合地被实现。相反,在单个实施例的上下文中所描述的各种特征也可以分别在多个实施例中被实现或者以任何合适的子组合而被实现。此外,尽管以上可以将特征描述为以某些组合行动并且甚至最初是这样要求保护的,但是在一些情况下所要求保护的组合一个或多个特征可以从组合中被切除,并且权利要求可以针对子组合或子组合的变型。
类似地,虽然在附图中描绘了操作并且以具体次序在权利要求中叙述了这些操作,但是这不应被理解为达到期望的结果要求以所示出的具体次序或者以顺序次序来执行这样的操作,或者执行所有所说明的操作。在某些情况下,多任务和并行处理可能是有优势的。此外,以上所描述的实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都要求这种分离,并且应理解,所描述的程序组件和系统通常可以一起被集成在单个软件产品中,或者被打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中所叙述的动作可以以不同的次序被执行并且仍然达成期望的结果。作为一个示例,附图中所描绘的过程不一定需要所示出的具体次序或者顺序次序来实现期望的结果。在某些情况下,多任务处理和并行处理可能是有优势的。

Claims (24)

1.一种系统,包括:
包括一个或多个计算机和一个或多个存储设备的服务器,所述服务器被配置为实现社交消息接发平台;
用户设备;以及
运行在所述用户设备上的所述社交消息接发平台的客户端软件,其中所述客户端软件被配置为执行操作,所述操作包括:
向所述服务器发送内容请求;
从所述用户设备上的网络栈的传输层增量地在多个片段中接收来自所述服务器的对所述内容请求的响应,其中所述多个片段构成整个所述响应,其中所述响应包括多个内容项和描述所述多个内容项的元数据,并且其中每个内容项是可绘出的并且由一个或多个数据对象定义;
在所述片段被接收时,增量地将所述片段中的所述多个内容项绘出到显示缓冲区中,包括将所述多个内容项以由所述元数据确定的次序放置在所述显示缓冲区中,所述显示缓冲区是所述用户设备的存储器中的数据结构;以及
将所述显示缓冲区的全部或者部分显示在所述用户设备的显示器上。
2.根据权利要求1所述的系统,其中所述客户端软件是独立app或者在被安装在所述用户设备上的web浏览器中运行的JavaScript程序。
3.根据权利要求1所述的系统,其中描述所述多个内容项的所述元数据针对每个内容项包括序列标识符,所述序列标识符指定所述内容项在所述显示缓冲区中相对于所述响应中的其他内容项、以及相对于在所述显示缓冲区中先前被绘出的多个响应中的多个内容项的地方。
4.根据权利要求3所述的系统,其中针对相应的内容项的序列标识符对应于所述内容项相对于其他内容项被创建的时间。
5.根据权利要求1所述的系统,其中所述元数据在所述响应的初始片段中被接收,并且包括所述响应中的多个内容项的总计数,并且其中所述操作还包括:
在所述显示缓冲区中绘出所述初始片段中的所述多个内容项,并且在所述显示缓冲区中包括针对所述响应的后续片段中的每个内容项的相应的占位符;以及
在绘出所述后续片段中的所述多个内容项时替换相应的占位符。
6.根据权利要求5所述的系统,其中所述元数据针对每个内容项还包括序列标识符,并且其中相应的占位符在所述显示缓冲区中由所述相应的占位符的对应的内容项的所述序列标识符指定的地方中被创建。
7.根据权利要求1所述的系统,其中在所述片段被接收时增量地绘出所述片段中的所述多个内容项包括:
确定第一片段仅包括特定内容项的初始部分;
接收包括所述特定内容项的其余部分的第二片段;
组装所述特定内容项的所述初始部分和所述其余部分;以及
在所述显示缓冲区中绘出经组装的所述内容项。
8.根据权利要求7所述的系统,其中所述一个或多个数据对象是JSON对象,并且其中在所述片段被接收时增量地绘出所述片段中的所述多个内容项包括针对每个内容项:
标识定义所述内容项的JSON对象的开头;并且
标识定义所述内容项的所述JSON对象的结尾。
9.根据权利要求1所述的系统,其中所述响应的所述片段中的每个片段包括通过传输层协议向所述客户端软件提供的一个或多个传输层分段。
10.根据权利要求1所述的系统,其中在每个响应中,绘出所述响应中的每个内容项所必需的数据被包含在定义所述内容项的所述一个或多个数据对象中、或者在定义所述响应中先前被接收的多个内容项的一个或多个数据对象中。
11.根据权利要求1所述的系统,其中所述服务器是远程服务器。
12.一种由运行在用户设备上的社交消息接发平台的客户端软件执行的方法,所述方法包括:
向服务器发送内容请求,所述服务器包括一个或多个计算机和一个或多个存储设备,所述服务器被配置为实现所述社交消息接发平台;
从所述用户设备上的网络栈的传输层增量地在多个片段中接收来自所述服务器的对所述内容请求的响应,其中所述多个片段构成整个所述响应,其中所述响应包括多个内容项和描述所述多个内容项的元数据,并且其中每个内容项是可绘出的并且由一个或多个数据对象定义;
在所述片段被接收时,增量地将所述片段中的所述多个内容项绘出到显示缓冲区中,包括将所述多个内容项以由所述元数据确定的次序放置在所述显示缓冲区中,所述显示缓冲区是所述用户设备的存储器中的数据结构;以及
将所述显示缓冲区的全部或者部分显示在所述用户设备的显示器上。
13.根据权利要求12所述的方法,其中所述客户端软件是独立app或者在被安装在所述用户设备上的web浏览器中运行的JavaScript程序。
14.根据权利要求12所述的方法,其中描述所述多个内容项的所述元数据针对每个内容项包括序列标识符,所述序列标识符指定所述内容项在所述显示缓冲区中相对于所述响应中的其他内容项、以及相对于在所述显示缓冲区中先前被绘出的多个响应中的多个内容项的地方。
15.根据权利要求14所述的方法,其中针对相应的内容项的序列标识符对应于所述内容项相对于其他内容项被创建的时间。
16.根据权利要求12所述的方法,其中所述元数据在所述响应的初始片段中被接收并且包括所述响应中的多个内容项的总计数,并且其中所述方法还包括:
在所述显示缓冲区中绘出所述初始片段中的所述多个内容项,并且在所述显示缓冲区中包括针对所述响应的后续片段中的每个内容项的相应的占位符;以及
在绘出所述后续片段中的所述多个内容项时替换相应的占位符。
17.根据权利要求16所述的方法,其中所述元数据针对每个内容项还包括序列标识符,并且其中相应的占位符在所述显示缓冲区中由所述相应的占位符的对应的内容项的所述序列标识符指定的地方中被创建。
18.根据权利要求12所述的方法,其中在所述片段被接收时增量地绘出所述片段中的所述多个内容项包括:
确定第一片段仅包括特定内容项的初始部分;
接收包括所述特定内容项的其余部分的第二片段;
组装所述特定内容项的所述初始部分和所述其余部分;以及
在所述显示缓冲区中绘出经组装的所述内容项。
19.根据权利要求18所述的方法,其中所述一个或多个数据对象是JSON对象,并且其中在所述片段被接收时增量地绘出所述片段中的所述多个内容项包括针对每个内容项:
标识定义所述内容项的JSON对象的开头;并且
标识定义所述内容项的所述JSON对象的结尾。
20.根据权利要求12所述的方法,其中所述响应的所述片段中的每个片段包括通过传输层协议向所述客户端软件提供的一个或多个传输层分段。
21.根据权利要求12所述的方法,其中在每个响应中,绘出所述响应中的每个内容项所必需的数据被包含在定义所述内容项的所述一个或多个数据对象中、或者在定义所述响应中先前被接收的多个内容项的一个或多个数据对象中。
22.根据权利要求12所述的方法,其中服务器是远程服务器。
23.存储指令的一个或多个非瞬态计算机可读介质,所述指令在由一个或多个计算机执行时可操作以使得所述一个或多个计算机执行操作,所述操作包括:
向服务器发送内容请求,所述服务器包括一个或多个计算机和一个或多个存储设备,所述服务器被配置为实现社交消息接发平台;
从所述一个或多个计算机上的网络栈的传输层增量地在多个片段中接收来自所述服务器的对所述内容请求的响应,其中所述多个片段构成整个所述响应,其中所述响应包括多个内容项和描述所述多个内容项的元数据,并且其中每个内容项是可绘出的并且由一个或多个数据对象定义;
在所述片段被接收时,增量地将所述片段中的所述多个内容项绘出到显示缓冲区中,包括将所述多个内容项以由所述元数据确定的次序放置在所述显示缓冲区中,所述显示缓冲区是所述一个或多个计算机的存储器中的数据结构;以及
将所述显示缓冲区的全部或者部分显示在所述一个或多个计算机的显示器上。
24.一种系统,包括:
被配置为实现社交消息接发平台的一个或多个计算机和一个或多个存储设备,所述一个或多个存储设备存储指令,所述指令在由所述一个或多个计算机执行时使得所述一个或多个计算机执行操作,所述操作包括:
接收来自所述社交消息接发平台的客户端软件的内容请求,所述客户端软件在用户设备上运行;
获取(i)对应于所述内容请求的多个内容项,(ii)描述所述多个内容项的元数据,以及(iii)绘出所述多个内容项所必需的数据,其中描述所述多个内容项的所述元数据针对每个内容项包括序列标识符,所述序列标识符指定所述内容项在所述用户设备的显示缓冲区中相对于其他内容项应当被绘出的位置;
生成对所述内容请求的响应,包括:
将所述元数据放置在所述响应的初始片段中,以及
将绘出每个内容项所必需的所述数据放置在定义所述内容项的一个或多个数据对象中、或者在定义所述响应中在所述内容项之前的内容项的一个或多个数据对象中;以及
向所述客户端软件发送所述响应。
CN201980061339.3A 2018-09-19 2019-09-19 渐进式api响应 Pending CN112913195A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/136,093 US20200089779A1 (en) 2018-09-19 2018-09-19 Progressive API Responses
US16/136,093 2018-09-19
PCT/US2019/052019 WO2020061373A1 (en) 2018-09-19 2019-09-19 Progressive api responses

Publications (1)

Publication Number Publication Date
CN112913195A true CN112913195A (zh) 2021-06-04

Family

ID=68136541

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980061339.3A Pending CN112913195A (zh) 2018-09-19 2019-09-19 渐进式api响应

Country Status (8)

Country Link
US (2) US20200089779A1 (zh)
EP (1) EP3854036A1 (zh)
JP (1) JP7217342B2 (zh)
KR (1) KR20210089145A (zh)
CN (1) CN112913195A (zh)
BR (1) BR112021004736A8 (zh)
DE (1) DE202019005788U1 (zh)
WO (1) WO2020061373A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11170064B2 (en) * 2019-03-05 2021-11-09 Corinne David Method and system to filter out unwanted content from incoming social media data
US20230359483A1 (en) * 2020-12-25 2023-11-09 Beijing Baidu Netcom Science And Technology Co., Ltd. Method for applet page rendering, electronic device and storage medium

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040237082A1 (en) * 2003-05-22 2004-11-25 Alcazar Mark A. System, method, and API for progressively installing software application
US20130031487A1 (en) * 2011-07-26 2013-01-31 Salesforce.Com, Inc. Systems and methods for fragmenting newsfeed objects
US20130285937A1 (en) * 2012-04-27 2013-10-31 Mobitv, Inc Connected multi-screen video management
US20150278876A1 (en) * 2014-03-27 2015-10-01 Google Inc. Providing content using integrated objects
CN105409226A (zh) * 2013-07-25 2016-03-16 华为技术有限公司 有效控制自适应流媒体中的客户端行为的系统和方法
US20160103565A1 (en) * 2014-10-09 2016-04-14 Wrap Media, LLC Wrap package of cards including a gallery
US20160188549A1 (en) * 2013-09-20 2016-06-30 Yottaa Inc. Systems and methods for managing loading priority or sequencing of fragments of a web object
US20160226946A1 (en) * 2015-02-02 2016-08-04 Vmware, Inc. Streaming progress updates and results of rest api operations
US20180095733A1 (en) * 2016-09-30 2018-04-05 Salesforce.Com, Inc. Generating content objects using an integrated development environment

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5977977A (en) * 1995-08-04 1999-11-02 Microsoft Corporation Method and system for multi-pass rendering
JP2004287631A (ja) 2003-03-20 2004-10-14 Konami Co Ltd ダウンロードサービスシステム、端末、指令列の実行方法、ならびに、プログラム
US8180029B2 (en) * 2007-06-28 2012-05-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US9990439B2 (en) * 2007-08-14 2018-06-05 Nbcuniversal Media, Llc Flexible method and system for providing digital content
US20090049373A1 (en) * 2007-08-14 2009-02-19 Nbc Universal, Inc. Method and system for user receipt of digital content
CN101802823A (zh) * 2007-08-20 2010-08-11 诺基亚公司 用于流式多媒体数据的分段的元数据和位标
US20090089448A1 (en) * 2007-09-28 2009-04-02 David Sze Mobile browser with zoom operations using progressive image download
US20100070643A1 (en) * 2008-09-11 2010-03-18 Yahoo! Inc. Delivery of synchronized metadata using multiple transactions
US9043276B2 (en) * 2008-10-03 2015-05-26 Microsoft Technology Licensing, Llc Packaging and bulk transfer of files and metadata for synchronization
US8996547B2 (en) * 2008-10-31 2015-03-31 Microsoft Technology Licensing, Llc Dynamic fragmentation of digital media
US20100115575A1 (en) * 2008-11-03 2010-05-06 At&T Intellectual Property I, L.P. System and method for recording and distributing media content
US8412841B1 (en) * 2009-08-17 2013-04-02 Adobe Systems Incorporated Media content streaming using stream message fragments
US9917874B2 (en) * 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US8631436B2 (en) * 2009-11-25 2014-01-14 Nokia Corporation Method and apparatus for presenting media segments
WO2011066691A1 (en) * 2009-12-04 2011-06-09 Streamocean, Inc. System and method to deliver multimedia content for display through network
US8321426B2 (en) * 2010-04-30 2012-11-27 Hewlett-Packard Development Company, L.P. Electronically linking and rating text fragments
US20130080268A1 (en) * 2011-09-26 2013-03-28 Unicorn Media, Inc. Multi-platform media syndication customization
US8863165B2 (en) * 2010-11-01 2014-10-14 Gracenote, Inc. Method and system for presenting additional content at a media system
US20120131609A1 (en) * 2010-11-19 2012-05-24 Media Patents, S.L. Methods, apparatus and systems for delivering and receiving data
US9860572B2 (en) * 2011-06-08 2018-01-02 Koninklijke Kpn N.V. Spatially segmented content delivery
US20130080579A1 (en) * 2011-09-26 2013-03-28 Unicorn Media, Inc. Dynamically-executed syndication services
US20130230292A1 (en) * 2012-03-02 2013-09-05 Care Cam Innovations, Llc Apparatus, Method and Computer-Readable Storage Medium for Media Processing and Delivery
US9276989B2 (en) * 2012-03-30 2016-03-01 Adobe Systems Incorporated Buffering in HTTP streaming client
US20140123159A1 (en) * 2012-10-31 2014-05-01 Telefonaktiebolaget L M Ericsson (Publ) Providing Content On Demand
TW201427354A (zh) 2012-12-19 2014-07-01 Hon Hai Prec Ind Co Ltd 漸進式資料編碼傳輸系統及方法
US11233841B2 (en) * 2013-03-15 2022-01-25 Yottaa, Inc. Systems and methods for configuration-based optimization by an intermediary
US9710469B2 (en) * 2013-03-15 2017-07-18 Comcast Cable Communications, Llc Efficient data distribution to multiple devices
KR20150029913A (ko) * 2013-09-11 2015-03-19 한국전자통신연구원 청크 단위로 콘텐트를 전달하는 콘텐트 시스템 및 방법
US10178147B1 (en) 2014-01-02 2019-01-08 Instart Logic, Inc. Client-side location address translation
EP3105903B1 (en) * 2014-02-13 2019-08-07 Koninklijke KPN N.V. Requesting multiple chunks from a network node on the basis of a single request message
US10423481B2 (en) * 2014-03-14 2019-09-24 Cisco Technology, Inc. Reconciling redundant copies of media content
FR3019428A1 (fr) * 2014-03-31 2015-10-02 Orange Dispositif et procede de commande a distance de la restitution de contenus multimedia
US10157102B2 (en) * 2016-12-29 2018-12-18 Whatsapp Inc. Techniques to scan and reorganize media files to remove gaps
JP6747303B2 (ja) 2017-01-13 2020-08-26 富士通株式会社 通信装置、通信システム、通信方法、および、通信プログラム
US10999391B2 (en) * 2017-10-30 2021-05-04 Sony Interactive Entertainment LLC Dynamic filtering and amelioration of content stream manifests

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040237082A1 (en) * 2003-05-22 2004-11-25 Alcazar Mark A. System, method, and API for progressively installing software application
US20130031487A1 (en) * 2011-07-26 2013-01-31 Salesforce.Com, Inc. Systems and methods for fragmenting newsfeed objects
US20130285937A1 (en) * 2012-04-27 2013-10-31 Mobitv, Inc Connected multi-screen video management
CN105409226A (zh) * 2013-07-25 2016-03-16 华为技术有限公司 有效控制自适应流媒体中的客户端行为的系统和方法
US20160188549A1 (en) * 2013-09-20 2016-06-30 Yottaa Inc. Systems and methods for managing loading priority or sequencing of fragments of a web object
US20180121401A1 (en) * 2013-09-20 2018-05-03 Yottaa, Inc. Systems and methods for managing loading priority or sequencing of fragments of a web object
US20150278876A1 (en) * 2014-03-27 2015-10-01 Google Inc. Providing content using integrated objects
US20160103565A1 (en) * 2014-10-09 2016-04-14 Wrap Media, LLC Wrap package of cards including a gallery
US9582154B2 (en) * 2014-10-09 2017-02-28 Wrap Media, LLC Integration of social media with card packages
US20160226946A1 (en) * 2015-02-02 2016-08-04 Vmware, Inc. Streaming progress updates and results of rest api operations
US20180095733A1 (en) * 2016-09-30 2018-04-05 Salesforce.Com, Inc. Generating content objects using an integrated development environment

Also Published As

Publication number Publication date
JP2022500785A (ja) 2022-01-04
DE202019005788U1 (de) 2022-01-31
EP3854036A1 (en) 2021-07-28
WO2020061373A1 (en) 2020-03-26
US20200089779A1 (en) 2020-03-19
US20230021023A1 (en) 2023-01-19
BR112021004736A8 (pt) 2022-11-22
BR112021004736A2 (pt) 2021-06-01
JP7217342B2 (ja) 2023-02-02
KR20210089145A (ko) 2021-07-15

Similar Documents

Publication Publication Date Title
US10104164B2 (en) Aggregating plug-in requests for improved client performance
US9485285B1 (en) Assisting the authoring of posts to an asymmetric social network
US20170308251A1 (en) User Interface with Media Wheel Facilitating Viewing of Media Objects
US20210320990A1 (en) Establishing a trust association
AU2012216321B2 (en) Share box for endorsements
US20230021023A1 (en) Progressive api responses
US10785183B2 (en) Composing social media messages referencing multiple messages
US11108725B1 (en) Social media message composition
AU2010315627A1 (en) Mechanism for adding content from a search to a document or message
KR20210008948A (ko) 내장된 미디어에 관련하여 부가 콘텐트를 제공
US8504711B1 (en) Integrating web services with a content item
US9256343B1 (en) Dynamically modifying an electronic article based on commentary
KR20220006504A (ko) 미디어 콘텐츠 캡처 및 프레젠테이션
US20150026266A1 (en) Share to stream
US20190095542A1 (en) Method and system of dynamic website creation through url parameter analysis
US20210160342A1 (en) Client software back off
US11438399B1 (en) Fast loading and display of image previews
US20150019622A1 (en) On time launcher for sites

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20210604