一种数据传输方法和装置与流程

文档序号:14879952发布日期:2018-07-07 09:31阅读:118来源:国知局

本申请涉及互联网技术领域,尤其涉及一种数据传输方法和装置。



背景技术:

客户端通常会以列表形式显示页面(本文中将该页面称为列表页面,也称为feeds流页面),该列表页面可以包括多个业务数据(如feeds数据),每个业务数据是该列表页面中的一个列表项。其中,由于列表页面通常是客户端的首页,为了使用户从首页获得更多的信息,该列表页面会包含多个业务数据。

目前,针对列表页面的显示过程,客户端可以向服务端发送列表页面的请求消息。服务端在接收到该请求消息后,需要依次查询每个业务数据,并将查询到的所有业务数据返回给客户端,以使客户端在列表页面显示这些业务数据。

但是,在上述方式下,由于服务端需要查询的业务数据很多,因此查询时间会比较长,从而导致向客户端返回业务数据的时间过长,导致列表页面的打开时间过长,用户体验很差。例如,假设需要在列表页面上显示10个业务数据,每个业务数据的查询时间为50毫秒,那么,服务端查询所有业务数据的时间是50毫秒*10=500毫秒,因此,客户端显示列表页面的时间会超过500毫秒。



技术实现要素:

本申请提供一种数据传输方法,应用于服务端,所述方法包括:

接收来自客户端的用于请求至少一个业务数据的请求消息;

确定所述至少一个业务数据对应的业务标识;

获取所述业务标识对应的第一类数据,并通过第一传输通道将所述第一类数据发送给所述客户端,以使所述客户端在指定页面显示所述第一类数据;

获取所述业务标识对应的第二类数据,并通过第二传输通道将所述第二类数据发送给所述客户端,以使所述客户端在所述指定页面显示所述第二类数据。

本申请提供一种数据传输方法,应用于客户端,所述方法包括:

向服务端发送用于请求至少一个业务数据的请求消息;

接收所述服务端通过第一传输通道发送的第一类数据;所述第一类数据是所述服务端获取的所述至少一个业务数据对应的业务标识对应的第一类数据;

在指定页面显示所述第一类数据;

接收所述服务端通过第二传输通道发送的第二类数据;所述第二类数据是所述服务端获取的所述至少一个业务数据对应的业务标识对应的第二类数据;

在所述指定页面显示所述第二类数据。

本申请提供一种数据传输方法,应用于服务端,所述方法包括:

接收来自客户端的用于请求至少一个业务数据的请求消息;其中,所述请求消息用于触发所述服务端获取第一类数据以及第二类数据;

确定所述至少一个业务数据对应的业务标识;

获取所述业务标识对应的第一类数据,并通过第一传输通道将所述第一类数据发送给所述客户端,以使所述客户端在指定页面显示所述第一类数据;

获取所述业务标识对应的第二类数据,并通过第二传输通道将所述第二类数据发送给所述客户端,以使所述客户端在所述指定页面显示所述第二类数据。

本申请提供一种数据传输装置,应用于服务端,所述装置包括:

接收模块,用于接收来自客户端的用于请求至少一个业务数据的请求消息;

确定模块,用于确定所述至少一个业务数据对应的业务标识;

第一获取模块,用于获取所述业务标识对应的第一类数据;

第一发送模块,用于通过第一传输通道将所述第一类数据发送给所述客户端,以使所述客户端在指定页面显示所述第一类数据;

第二获取模块,用于获取所述业务标识对应的第二类数据;

第二发送模块,用于通过第二传输通道将所述第二类数据发送给所述客户端,以使所述客户端在所述指定页面显示所述第二类数据。

本申请提供一种数据传输装置,应用于客户端,所述装置包括:

发送模块,用于向服务端发送用于请求至少一个业务数据的请求消息;

第一接收模块,用于接收所述服务端通过第一传输通道发送的第一类数据;其中,所述第一类数据是所述服务端获取的所述至少一个业务数据对应的业务标识对应的第一类数据;

第一显示模块,用于在指定页面显示所述第一类数据;

第二接收模块,用于接收所述服务端通过第二传输通道发送的第二类数据;其中,所述第二类数据是所述服务端获取的所述至少一个业务数据对应的业务标识对应的第二类数据;

第二显示模块,用于在所述指定页面显示所述第二类数据。

本申请提供一种数据传输装置,应用于服务端,所述装置包括:

接收模块,用于接收来自客户端的用于请求至少一个业务数据的请求消息;其中,所述请求消息用于触发所述服务端获取第一类数据以及第二类数据;

确定模块,用于确定所述至少一个业务数据对应的业务标识;

第一获取模块,用于获取所述业务标识对应的第一类数据;

第一发送模块,用于通过第一传输通道将所述第一类数据发送给所述客户端,以使所述客户端在指定页面显示所述第一类数据;

第二获取模块,用于获取所述业务标识对应的第二类数据;

第二发送模块,用于通过第二传输通道将所述第二类数据发送给所述客户端,以使所述客户端在所述指定页面显示所述第二类数据。

基于上述技术方案,本申请实施例中,服务端在接收到请求消息之后,可以将业务数据的第一类数据和第二类数据分离,继而先获取第一类数据,并将第一类数据发送给客户端,以使客户端在指定页面显示第一类数据。这样,由于第一类数据的查询时间比较短,服务端可以在很短的时间内将第一类数据发送给客户端,使得客户端可以尽快打开指定页面,避免服务端查询时间较长,指定页面的打开时间过长等问题,提高用户体验。服务端在获取到第二类数据之后,可以通过异步方式将第二类数据推送到客户端,从而保证数据的实时性。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。

图1是本申请一种实施方式中的应用场景示意图;

图2是本申请一种实施方式中的数据传输方法的流程图;

图3是本申请另一种实施方式中的数据传输方法的流程图;

图4是本申请另一种实施方式中的数据传输方法的流程图;

图5a是本申请另一种实施方式中的数据传输方法的流程图;

图5b和图5c是本申请一种实施方式中的列表页面的示意图;

图6是本申请一种实施方式中的服务端的硬件结构图;

图7是本申请一种实施方式中的数据传输装置的结构图;

图8是本申请另一种实施方式中的数据传输装置的结构图;

图9是本申请一种实施方式中的客户端的硬件结构图;

图10是本申请一种实施方式中的数据传输装置的结构图。

具体实施方式

在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”,或者“当……时”,或者“响应于确定”。

本申请实施例中提出一种数据传输方法,该方法可以应用于包括客户端和服务端的系统中,如图1所示,为该系统的结构示意图。其中,该客户端可以是终端设备(如pc(personalcomputer,个人计算机)、笔记本电脑、移动终端等)上的app(application,应用),对此客户端的类型不做限制,所有能够访问服务端的客户端,均在本申请实施例的保护范围之内。服务端是具有数据获取功能、数据传输功能的设备,如服务端可以是数据平台、电商平台等,对此服务端的类型不做限制,所有具有数据获取功能、数据传输功能的设备,均在本申请实施例的保护范围之内。参见图2所示,为本申请实施例中的数据传输方法的流程图,该方法可以应用于服务端,该方法可以包括以下步骤:

步骤201,接收来自客户端的用于请求至少一个业务数据的请求消息。

步骤202,确定该至少一个业务数据对应的业务标识。

步骤203,获取该业务标识对应的第一类数据,并通过第一传输通道将该第一类数据发送给客户端,以使客户端在指定页面显示该第一类数据。

步骤204,获取该业务标识对应的第二类数据,并通过第二传输通道将该第二类数据发送给客户端,以使客户端在该指定页面显示该第二类数据。

在一个例子中,上述执行顺序只是为了方便描述所给出的一个示例,在实际应用中,还可以改变各步骤之间的执行顺序,对此执行顺序不做限制。

针对步骤201,在一个例子中,当客户端需要通过指定页面显示至少一个业务数据时,该客户端会向服务端发送请求消息,该请求消息用于向服务端请求所述至少一个业务数据。这样,服务端可以接收到来自客户端的用于请求所述至少一个业务数据的请求消息。其中,该指定页面可以包括但不限于:需要以列表形式显示的页面(可以将该页面称为列表页面,也称为feeds流页面);需要以文本框形式显示的页面;需要以图片形式显示的页面;需要以字符串形式显示的页面等,对此指定页面的类型不做限制,只要通过该指定页面可以显示至少一个业务数据(如针对列表页面,业务数据可称为feeds数据)即可。

针对步骤202,在一个例子中,服务端在接收到该请求消息后,可以确定出所述至少一个业务数据对应的业务标识。例如,在客户端发送的请求消息中可以携带所述至少一个业务数据对应的业务标识,这样,服务端可以从该请求消息中解析出所述至少一个业务数据对应的业务标识。又例如,在客户端发送的请求消息中可以携带请求参数,该请求参数对应了至少一个业务数据对应的业务标识,这样,服务端可以从该请求消息中解析出该请求参数,并通过查询请求参数与业务标识的对应关系,得到所述至少一个业务数据对应的业务标识。

为了方便描述,以请求消息用于请求业务数据1、业务数据2和业务数据3为例,当然,其请求的业务数据可能多于三个,对此数量不做限制,后续以请求三个业务数据为例进行说明。基于此,服务端可以确定出业务数据1对应的业务标识1,业务数据2对应的业务标识2,业务数据3对应的业务标识3。

针对步骤203和步骤204,服务端在确定业务标识后,并不是获取该业务标识对应的业务数据,而是将业务数据划分为第一类数据和第二类数据,服务端先获取该业务标识对应的第一类数据,并通过第一传输通道将该第一类数据发送给客户端,然后获取该业务标识对应的第二类数据,并通过第二传输通道将该第二类数据发送给客户端。其中,服务端向客户端发送第一类数据时使用的第一传输通道与服务端向客户端发送第二类数据时使用的第二传输通道不同。

在实际应用中,业务数据可能会包括很多数据,将业务数据包括的每个数据称为子数据,而本申请实施例中,可以根据子数据的获取时间和/或用户需求,将业务数据包括的子数据划分为第一类数据和第二类数据。当然,对于第一类数据和第二类数据的划分方式,并不局限于上述方式,对此划分方式不做限制。

针对“根据子数据的获取时间,将业务数据包括的子数据划分为第一类数据和第二类数据”的过程,可以将获取时间(即从服务端收到请求消息开始,一直到获取到子数据的时间)小于预设时间阈值(如30毫秒)的子数据确定为第一类数据,并将获取时间不小于预设时间阈值的子数据确定为第二类数据。

其中,针对“根据用户需求,将业务数据包括的子数据划分为第一类数据和第二类数据”的过程,可以将需要在指定页面先展示的子数据(即用户在看到这个指定页面时,就应该被同时看到的子数据)确定为第一类数据,将不需要在指定页面先展示的子数据(即用户在看到这个指定页面时,可以先不看到,只要在指定页面的后续展示过程中,可以看到的子数据)确定为第二类数据。

其中,针对“根据子数据的获取时间以及用户需求,将业务数据包括的子数据划分为第一类数据和第二类数据”的过程,可以将获取时间小于预设时间阈值(如30毫秒),并且需要在指定页面先展示的子数据确定为第一类数据,并将业务数据包括的所述第一类数据之外的其它子数据确定为第二类数据。

当然,在实际应用中,还可以根据其它策略确定业务数据的部分子数据为第一类数据,确定第一类数据之外的其它子数据为第二类数据,对此不再赘述。

综上所述,由于服务端可以获知数据的获取时间和用户需求等信息,因此,本申请实施例,由服务端主导异步,即主导第一类数据和第二类数据的分离,并采用不同传输通道向客户端发送第一类数据和第二类数据。与客户端主导的异步相比:一、若由客户端主导异步,在页面开发完成后,可能在线上运维一段时间后,基于用户反馈,才发现页面打开数据慢,需要做异步改造,客户端的发现存在滞后性。若由服务端主导异步,在页面开发完成后,由于服务端存在大量接口的性能数据,可以提前发现页面打开数据慢,并提前做异步改造,处理及时。二、若由客户端主导异步,客户端会向服务端了解页面数据的查询性能,然后让服务端将数据接口分离成多个,客户端会发多个请求给服务端,尤其是,当数据存在上下依赖关系时,如数据b依赖数据a,则客户端先到服务端获取数据a,在获得数据a后,再到服务端获取数据b,客户端改造的方式不能达到最优。若由服务端主导异步,服务端知道数据a和数据b的依赖关系,不需要等到数据a返回给客户端,并接收到数据b的请求后,才去查询数据b,而是可以在查询数据a时,便同步查询数据b,节省了数据b的传输时间。三、若由客户端主导异步,每次针对每个特定场景进行异步,例如,当发现a页面有问题,则对a页面进行异步处理,当发现b页面有问题,则对b页面进行异步处理,每次进行处理时均需要进行客户端和服务端的开发,且客户端改造完成后,还需要经过升级等一系列复杂的流程,改造成本高。而且,若用户不愿意升级客户端的版本,则这样的客户端还无法实现异步处理。若由服务端主导异步,页面的性能优化完全在服务端,客户端不需要进行升级,如果a页面有问题,则直接改造a页面对应的服务端数据接口为同步异步结合。如果b页面有问题,则直接改造b页面对应的服务端数据接口为同步异步结合。

在一个例子中,在客户端向服务端发送请求消息后,服务端会向客户端返回针对该请求消息的响应消息,且请求消息和响应消息是同一传输通道,例如,当请求消息为http(hypertexttransferprotocol,超文本传输协议)请求消息时,则响应消息为http响应消息,且传输通道为http传输通道。因此,上述第一传输通道可以为请求消息对应的传输通道,即服务端可以通过请求消息的响应消息将第一类数据发送给客户端,客户端在指定页面显示该第一类数据。

服务端在向客户端返回针对该请求消息的响应消息后,客户端与服务端之间的第一传输通道会中断,服务端无法再次通过第一传输通道向客户端发送第二类数据,只有再次接收到来自客户端的请求消息后,才会通过第一传输通道向客户端发送响应消息。而本申请实施例中,为了请求相同的业务数据,客户端只会向服务端发送一次请求消息,而不会多次向服务端发送请求消息,因此,服务端无法通过第一传输通道向客户端发送第二类数据,需要采用其它传输通道向客户端发送第二类数据。基于此,服务端还可以确定第二类数据的传输方式,将该传输方式对应的通道称为第二传输通道,且该传输方式为第二传输通道的信息。因此,服务端可以通过第二传输通道将第二类数据发送给客户端。

在一个例子中,第二传输通道可以包括但不限于:服务端与客户端之间的推送(push)通道,该推送通道是一种服务端主动将数据发送给客户端的技术,服务端主动向客户端发送数据的所有方式,均在本申请实施例的保护范围之内。

在一个例子中,客户端在通过第一传输通道向服务端发送请求消息后,知道服务端会向本客户端返回响应消息,因此,客户端可以对第一传输通道上接收到的响应消息进行监听,继而监听到响应消息,并从该响应消息中解析出第一类数据。但是,若客户端不知道第二传输通道的信息,也就不会对客户端在第二传输通道上接收到的数据进行监听,因此导致客户端无法获得第二类数据。

基于此,服务端在通过第一传输通道将第一类数据发送给客户端的过程中,可以通过该第一传输通道将该第一类数据以及第二类数据的传输方式(即第二传输通道的信息)发送给客户端。这样,客户端可以利用该传输方式确定服务端发送第二类数据时使用的是第二传输通道,继而对客户端在第二传输通道上接收到的数据进行监听,以监听到服务端通过第二传输通道发送的第二类数据。

在实际应用中,客户端可以通过底层框架支持客户端一次请求,便可以接收来自服务端通过多个传输通道返回的数据。这样,只要客户端的底层框架支持即可,即使客户端承接新业务,开发新的页面,也不需要知道底层的数据是通过什么方式(如同步、异步、同步和异步结合等)接收的。

针对步骤204,在一个例子中,针对“服务端获取该业务标识对应的第二类数据”的过程,当业务标识的数量为多个时,则服务端可以采用同步方式获取每个业务标识对应的第二类数据;或者,服务端还可以采用异步方式获取每个业务标识对应的第二类数据。其中,所述异步方式可以包括但不限于如下方式:多线程方式、协程方式、异步io(inputoutput,输入输出)并发方式。

例如,当业务标识为业务标识1、业务标识2、业务标识3时,针对“服务端采用同步方式获取第二类数据”的过程,服务端获取业务标识1对应的第二类数据,业务标识1对应的第二类数据获取成功后,获取业务标识2对应的第二类数据,业务标识2对应的第二类数据获取成功后,获取业务标识3对应的第二类数据。针对“服务端采用异步方式获取第二类数据”的过程,服务端可以同时获取业务标识1对应的第二类数据、业务标识2对应的第二类数据、业务标识3对应的第二类数据。

在一个例子中,针对“服务端通过第二传输通道将第二类数据发送给客户端”的过程,可以包括但不限于如下方式:在获取到一个业务标识对应的第二类数据后,服务端通过第二传输通道将所述一个业务标识对应的第二类数据发送给客户端;或者,在获取到所有业务标识对应的第二类数据后,服务端才通过第二传输通道将所有业务标识对应的第二类数据发送给客户端。例如,服务端在获取到业务标识1对应的第二类数据后,通过第二传输通道将业务标识1对应的第二类数据发送给客户端。在获取到业务标识2对应的第二类数据后,通过第二传输通道将业务标识2对应的第二类数据发送给客户端。在获取到业务标识3对应的第二类数据后,通过第二传输通道将业务标识3对应的第二类数据发送给客户端。或者,服务端在获取到业务标识1对应的第二类数据、业务标识2对应的第二类数据、业务标识3对应的第二类数据后,通过第二传输通道将业务标识1对应的第二类数据、业务标识2对应的第二类数据、业务标识3对应的第二类数据发送给客户端。

基于上述技术方案,本申请实施例中,服务端在接收到请求消息之后,可以将业务数据的第一类数据和第二类数据分离,继而先获取第一类数据,并将第一类数据发送给客户端,以使客户端在指定页面显示第一类数据。这样,由于第一类数据的查询时间比较短,服务端可以在很短的时间内将第一类数据发送给客户端,使得客户端可以尽快打开指定页面,避免服务端查询时间较长,指定页面的打开时间过长等问题,提高用户体验。服务端在获取到第二类数据之后,可以通过异步方式将第二类数据推送到客户端,从而保证数据的实时性。

基于与上述方法同样的申请构思,参见图3所示,为本申请实施例中的数据传输方法的流程图,该方法可以应用于客户端,该方法可以包括以下步骤:

步骤301,向服务端发送用于请求至少一个业务数据的请求消息。

步骤302,接收服务端通过第一传输通道发送的第一类数据;其中,该第一类数据是服务端获取的至少一个业务数据对应的业务标识对应的第一类数据。

步骤303,在指定页面显示该第一类数据。

步骤304,接收服务端通过第二传输通道发送的第二类数据;其中,该第二类数据是服务端获取的至少一个业务数据对应的业务标识对应的第二类数据。

步骤305,在该指定页面显示该第二类数据。

在一个例子中,针对“接收服务端通过第一传输通道发送的第一类数据”的过程,可以包括但不限于:客户端接收服务端通过第一传输通道发送的第一类数据以及第二类数据的传输方式;该传输方式具体为第二传输通道的信息。

在一个例子中,针对“接收服务端通过第二传输通道发送的第二类数据”的过程,可以包括但不限于:客户端利用该第二类数据的传输方式确定服务端发送第二类数据时使用的第二传输通道,并对客户端在该第二传输通道上接收到的数据进行监听,以监听到服务端通过该第二传输通道发送的第二类数据。

在一个例子中,第一传输通道可以包括但不限于:请求消息对应的传输通道;第二传输通道可以包括但不限于:服务端与客户端之间的推送通道。

在一个例子中,针对“在指定页面显示第一类数据”的过程,可以包括但不限于如下方式:客户端获取第一类数据对应的页面标识,并在该页面标识对应的指定页面显示该第一类数据。针对“在指定页面显示第二类数据”的过程,可以包括但不限于如下方式:客户端获取第二类数据对应的页面标识,并在该页面标识对应的指定页面显示该第二类数据。

在客户端向服务端发送的请求消息中,还可以携带指定页面的页面标识。基于此,在服务端通过第一传输通道向客户端发送第一类数据时,还可以在发送的消息中携带该页面标识,以使客户端获取到该第一类数据对应的页面标识。而且,在服务端通过第二传输通道向客户端发送第二类数据时,还可以在发送的消息中携带该页面标识,以使客户端获取到该第二类数据对应的页面标识。

基于上述技术方案,本申请实施例中,服务端在接收到请求消息之后,可以将业务数据的第一类数据和第二类数据分离,继而先获取第一类数据,并将第一类数据发送给客户端,以使客户端在指定页面显示第一类数据。这样,由于第一类数据的查询时间比较短,服务端可以在很短的时间内将第一类数据发送给客户端,使得客户端可以尽快打开指定页面,避免服务端查询时间较长,指定页面的打开时间过长等问题,提高用户体验。服务端在获取到第二类数据之后,可以通过异步方式将第二类数据推送到客户端,从而保证数据的实时性。

基于与上述方法同样的申请构思,参见图4所示,为本申请实施例中的数据传输方法的流程图,该方法可以应用于服务端,该方法可以包括以下步骤:

步骤401,接收来自客户端的用于请求至少一个业务数据的请求消息;其中,所述请求消息用于触发所述服务端获取第一类数据以及第二类数据。

步骤402,确定所述至少一个业务数据对应的业务标识。

步骤403,获取所述业务标识对应的第一类数据,并通过第一传输通道将所述第一类数据发送给所述客户端,以使客户端在指定页面显示所述第一类数据。

步骤404,获取所述业务标识对应的第二类数据,并通过第二传输通道将所述第二类数据发送给所述客户端,以使客户端在指定页面显示所述第二类数据。

在一个例子中,可以由客户端主导异步过程,即客户端可以向服务端发送一个请求消息,该请求消息用于触发服务端获取第一类数据,并将第一类数据返回给客户端。之后,客户端可以向服务端发送另一个请求消息,该请求消息用于触发服务端获取第二类数据,并将第二类数据返回给客户端。

在另一个例子中,还可以由服务端主导异步过程,即客户端向服务端只发送一个请求消息,该请求消息用于触发服务端获取第一类数据以及第二类数据,而不是只触发服务端获取第一类数据,这样,服务端可以获取第一类数据,并将第一类数据返回给客户端,服务端可以获取第二类数据,并将第二类数据返回给客户端,而不是基于来自客户端的另一个请求消息才去获取第二类数据。

本流程的其它处理过程与图2所示的过程类似,在此不再重复赘述。

以下结合具体的应用场景,对本申请实施例的上述技术方案进行详细说明。

如图5a所示,为本申请实施例中的数据传输方法的流程图,该方法包括:

步骤501,在需要显示指定页面(如列表页面,后续以列表页面为例进行说明)时,客户端生成用于请求业务数据的请求消息,其中,该请求消息可以包括请求参数和该列表页面的页面标识。

步骤502,客户端向服务端发送该请求消息。

步骤503,服务端接收客户端发送的请求消息,从请求消息中解析请求参数。

步骤504,服务端确定该请求参数对应的业务标识。

例如,当客户端需要显示商品列表页面时,该请求参数可以为用户标识(表示向该用户显示列表页面)+商品(表示请求与商品有关的业务数据)。服务端在获得该用户标识后,可以从本地数据库中查询该用户标识对应的历史数据,并从历史数据中找到与商品有关的历史数据,并基于这些与商品有关的历史数据确定用户关注的商品,而这些商品的名称就是该请求参数对应的业务标识。当然,上述只是确定业务标识的一个示例,在实际应用中并不局限于此,根据不同的应用场景,业务标识的确定方式可以不同,对此确定方式不再赘述。

步骤505,服务端获取该业务标识对应的第一类数据和第二类数据的传输方式。

步骤506,服务端通过第一传输通道将第一类数据和该传输方式(即第二类数据的传输方式)发送给客户端。

步骤507,客户端在列表页面显示该第一类数据,并设置监听器。其中,客户端在接收到第一类数据以及第二类数据的传输方式(如第二传输通道的信息)后,可以利用该传输方式确定服务端发送第二类数据时使用的第二传输通道,并设置一个监听器,通过该监听器对客户端在该第二传输通道上接收到的数据进行监听。第一传输通道可以包括但不限于:上述请求消息对应的传输通道,第二传输通道可以包括但不限于:服务端与客户端之间的推送通道。

可以将业务数据划分为第一类数据和第二类数据,例如,第一类数据可以是商品的标题、图片、描述、商家等数据,而第二类数据可以是商家的销售中的商品总数、商家的代理总数等数据。由于商品的标题、图片、描述、商家等第一类数据存储在本地数据库中,因此,服务端可以从本地数据库中查询到业务标识对应的第一类数据,并通过第一传输通道将该第一类数据发送给客户端,由客户端在列表页面显示该第一类数据,如图5b所示,为列表页面的示例。

步骤508,服务端获取该业务标识对应的第二类数据。

步骤509,服务端通过第二传输通道将该第二类数据发送给客户端。

步骤510,客户端在列表页面显示该第二类数据。

在一个例子中,第二类数据由业务端维护,为了获取第二类数据,服务端向业务端发送携带业务标识的rpc(remoteprocedurecallprotocol,远程过程调用协议)请求消息,业务端在接收到该rpc请求消息后,查询该业务标识对应的第二类数据,并通过rpc响应消息将查询到的该第二类数据返回给服务端。

其中,服务端可以采用异步方式(如多线程、协程、异步io并发等)向业务端发送携带业务标识的rpc请求消息。例如,服务端同时向业务端发送携带业务标识1的rpc请求消息1,携带业务标识2的rpc请求消息2等。

在一个例子中,服务端在向业务端发送rpc请求消息后,还可以设置一个监听器,并通过该监听器对业务端返回的第二类数据进行监听。在监听到业务端返回的所有第二类数据后,服务端还可以通过服务端与客户端之间的第二传输通道(如消息通道、sync推送等推送方式),将第二类数据发送给客户端。

由于客户端的监听器用于对客户端在第二传输通道上接收到的数据进行监听,因此,客户端可以监听到服务端通过第二传输通道发送的第二类数据,并在指定页面显示该第二类数据,如图5c所示,为指定页面的一个示例。

在一个例子中,在服务端向客户端发送第一类数据时,还可以发送指定页面的页面标识,这样,客户端可以获取到第一类数据对应的页面标识,并在该页面标识对应的指定页面显示该第一类数据。而且,在服务端向客户端发送第二类数据时,还可以发送指定页面的页面标识,这样,客户端可以获取到第二类数据对应的页面标识,并在该页面标识对应的指定页面显示该第二类数据。

基于上述技术方案,本申请实施例中,服务端在接收到请求消息之后,可以将业务数据的第一类数据和第二类数据分离,继而先获取第一类数据,并将第一类数据发送给客户端,以使客户端在指定页面显示第一类数据。由于第一类数据的查询时间比较短,因此,服务端可以在很短的时间内将第一类数据发送给客户端,使得客户端可以尽快打开指定页面,避免服务端查询时间较长,指定页面的打开时间过长等问题,提高用户体验。服务端在获取到第二类数据之后,可以通过异步方式将第二类数据推送到客户端,从而保证数据的实时性。

基于与上述方法同样的申请构思,本申请实施例还提供一种数据传输装置120,该数据传输装置120可以应用在服务端10上。数据传输装置120可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的服务端10的处理器11,读取非易失性存储器12中对应的计算机程序指令形成的。从硬件层面而言,如图6所示,为数据传输装置120所在的服务端10的一种硬件结构图,除图6所示的处理器11、非易失性存储器12外,服务端10还可以包括其它硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,服务端10还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。

如图7所示,为本申请提出的数据传输装置的结构图,所述装置包括:接收模块1201,用于接收来自客户端的用于请求至少一个业务数据的请求消息;

确定模块1202,用于确定所述至少一个业务数据对应的业务标识;

第一获取模块1203,用于获取所述业务标识对应的第一类数据;

第一发送模块1204,用于通过第一传输通道将所述第一类数据发送给所述客户端,以使所述客户端在指定页面显示所述第一类数据;

第二获取模块1205,用于获取所述业务标识对应的第二类数据;

第二发送模块1206,用于通过第二传输通道将所述第二类数据发送给所述客户端,以使所述客户端在所述指定页面显示所述第二类数据。

所述第一发送模块1204,具体用于在通过第一传输通道将所述第一类数据发送给所述客户端的过程中,确定第二类数据的传输方式,所述传输方式为所述第二传输通道的信息;通过第一传输通道将所述第一类数据和所述传输方式发送给所述客户端;所述第一传输通道具体包括:所述请求消息对应的传输通道;所述第二传输通道具体包括:所述服务端与所述客户端之间的推送通道。

所述第二获取模块1205,具体用于在获取所述业务标识对应的第二类数据的过程中,当业务标识的数量为多个时,采用同步方式获取每个业务标识对应的第二类数据;或者,采用异步方式获取每个业务标识对应的第二类数据;

其中,所述异步方式包括:多线程方式、协程方式、异步io并发方式。

在一个例子中,所述第二发送模块1206,具体用于在通过第二传输通道将所述第二类数据发送给所述客户端的过程中,在获取到一个业务标识对应的第二类数据后,通过第二传输通道将所述一个业务标识对应的第二类数据发送给所述客户端;或者,在获取到所有业务标识对应的第二类数据后,通过第二传输通道将所述所有业务标识对应的第二类数据发送给所述客户端。

如图8所示,为本申请提出的数据传输装置的结构图,所述装置包括:

接收模块1207,用于接收来自客户端的用于请求至少一个业务数据的请求消息;所述请求消息用于触发所述服务端获取第一类数据以及第二类数据;

确定模块1208,用于确定所述至少一个业务数据对应的业务标识;

第一获取模块1209,用于获取所述业务标识对应的第一类数据;

第一发送模块1210,用于通过第一传输通道将所述第一类数据发送给所述客户端,以使所述客户端在指定页面显示所述第一类数据;

第二获取模块1211,用于获取所述业务标识对应的第二类数据;

第二发送模块1212,用于通过第二传输通道将所述第二类数据发送给所述客户端,以使所述客户端在所述指定页面显示所述第二类数据。

基于与上述方法同样的申请构思,本申请实施例还提供一种数据传输装置220,该数据传输装置220可以应用在客户端20上。数据传输装置220可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的客户端20的处理器21,读取非易失性存储器22中对应的计算机程序指令形成的。从硬件层面而言,如图9所示,为数据传输装置220所在的客户端20的一种硬件结构图,除图9所示的处理器21、非易失性存储器22外,客户端20还可以包括其它硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,客户端20还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。

如图10所示,为本申请提出的数据传输装置的结构图,所述装置包括:

发送模块2201,用于向服务端发送用于请求至少一个业务数据的请求消息;

第一接收模块2202,用于接收所述服务端通过第一传输通道发送的第一类数据;其中,所述第一类数据是所述服务端获取的所述至少一个业务数据对应的业务标识对应的第一类数据;

第一显示模块2203,用于在指定页面显示所述第一类数据;

第二接收模块2204,用于接收所述服务端通过第二传输通道发送的第二类数据;其中,所述第二类数据是所述服务端获取的所述至少一个业务数据对应的业务标识对应的第二类数据;

第二显示模块2205,用于在所述指定页面显示所述第二类数据。

所述第一接收模块2202,具体用于在接收所述服务端通过第一传输通道发送的第一类数据的过程中,接收所述服务端通过第一传输通道发送的第一类数据以及第二类数据的传输方式;所述传输方式具体为所述第二传输通道的信息;

所述第二接收模块2204,具体用于在接收所述服务端通过第二传输通道发送的第二类数据的过程中,利用所述传输方式确定所述服务端发送第二类数据时使用的第二传输通道;对所述客户端在所述第二传输通道上接收到的数据进行监听,以监听到所述服务端通过所述第二传输通道发送的第二类数据;

其中,所述第一传输通道具体包括:所述请求消息对应的传输通道;

所述第二传输通道具体包括:所述服务端与所述客户端之间的推送通道。

所述第一显示模块2203,具体用于获取所述第一类数据对应的页面标识;在所述页面标识对应的指定页面显示所述第一类数据;

所述第二显示模块2205,具体用于获取所述第二类数据对应的页面标识;在所述页面标识对应的指定页面显示所述第二类数据。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可以采用完全硬件实施例、完全软件实施例、或者结合软件和硬件方面的实施例的形式。而且,本申请可以采用在一个或者多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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