一种web即时数据显示的方法和系统与流程

文档序号:15079102发布日期:2018-08-03 11:16阅读:190来源:国知局

本发明涉及网络数据处理,尤其涉及一种web即时数据显示的方法和系统。



背景技术:

在浏览web网页时经常需要能够实时获取动态的数据变化,但是HTTP协议中服务端数据是需要网页客户端被动拉取数据的,而不能把变化的服务端数据实时地推给网页客户端动态显示,一次网页数据请求后连接就会断开。

现有技术中要实现网页实时动态数据变化效果,要么是服务端主动推送数据,要么客户端主动拉取数据;其中前者对于服务端和客户端都需要能支持websocket长连接,对于服务端和网页客户端开发成本和改动较大,并且兼容性不好,不是所有的浏览器和服务器都能够支持的很好;后者虽然成本较低但是客户端需要不断拉取数据,在一定时间内大量请求对服务器压力较大,用户体验效果也不佳。

以上背景技术内容的公开仅用于辅助理解本发明的构思及技术方案,其并不必然属于本专利申请的现有技术,在没有明确的证据表明上述内容在本专利申请的申请日已经公开的情况下,上述背景技术不应当用于评价本申请的新颖性和创造性。



技术实现要素:

为克服现有技术的缺陷,本发明提出一种web即时数据显示的方法和系统,开发成本低、对于服务器的改动很小、负载压力较低、且大大提升用户的体验。

为了达到上述效果,本发明采用以下技术方案:

本发明公开了一种web即时数据显示的方法,包括以下步骤:

S1:响应于用户端的数据请求,应用服务器根据当前的总请求量来计算所述用户端下次请求数据的间隔时间;

S2:所述应用服务器将所述用户端请求的数据和下次请求数据的间隔时间返回给所述用户端;

S3:所述用户端获取数据并在所述间隔时间后再次向所述应用服务器请求数据,并返回步骤S1。

优选地,步骤S1中在计算所述用户端下次请求数据的间隔时间之后所述应用服务器还判断所述用户端的数据请求是否为首次请求,如果是,则将当前的总请求量加1;如果否,则当前的总请求量保持不变。

优选地,步骤S1中具体包括:所述应用服务器在每一个单位时间区间内重新统计当前的总请求量,其中在进入每一个单位时间区间时,首先将当前的总请求量置为0,然后响应于用户端的数据请求,所述应用服务器在计算所述用户端下次请求数据的间隔时间之后判断所述用户端的数据请求是否为在该单位时间区间内的首次请求,如果是,则将当前的总请求量加1;如果否,则当前的总请求量保持不变。

优选地,一个单位时间区间的总时长为1~3s。

优选地,步骤S3中在返回步骤S1之前,所述应用服务器监测所述用户端是否已经终止请求数据,如果是,则将当前的总请求量减1;如果否,则当前的总请求量保持不变,且返回步骤S1。

优选地,步骤S1中具体包括:响应于用户端的数据请求,应用服务器根据下述公式计算所述用户端下次请求数据的间隔时间:Tia=((N%120)+1)*t,其中,Tia为所述用户端下次请求数据的间隔时间,N为当前的总请求量,t为10~25ms。

本发明还公开了一种web即时数据显示的系统,包括应用服务器和至少一个用户端,其中:所述应用服务器配置为在接收到所述用户端的数据请求时根据当前的总请求量来计算用户端下次请求数据的间隔时间,并将所述用户端请求的数据和下次请求数据的间隔时间返回给所述用户端;所述用户端配置为对所述应用服务器进行数据请求,并从所述应用服务器获取请求的数据和下次请求数据的间隔时间,并在所述间隔时间后再次向所述应用服务器请求数据。

优选地,所述应用服务器还配置为在每一个单位时间区间内重新统计当前的总请求量,其中在进入每一个单位时间区间时,首先将当前的总请求量置为0,然后在接收到所述用户端的数据请求时计算所述用户端下次请求数据的间隔时间,再判断所述用户端的数据请求是否为在该单位时间区间内的首次请求,如果是,则将当前的总请求量加1;如果否,当前的总请求量保持不变。

优选地,所述应用服务器还配置为监测所述用户端是否已经终止请求数据,如果是,则将当前的总请求量减1;如果否,则当前的总请求量保持不变。

优选地,所述应用服务器还配置为根据下述公式计算所述用户端下次请求数据的间隔时间:Tia=((N%120)+1)*t,其中,Tia为所述用户端下次请求数据的间隔时间,N为当前的总请求量,t为10~25ms。

与现有技术相比,本发明的有益效果在于:本发明的web即时数据显示的方法和系统,应用服务器在接收到用户端的数据请求时根据当前的总请求量来计算用户端下次请求数据的间隔时间,并将该间隔时间返回给用户端,用户端在该间隔时间再次向应用服务器请求数据,并以此循环,用户端每次根据实时计算的时间间隔来对应用服务器进行数据请求,保证用户实时数据请求均匀分布,减少服务器并发,大大降低服务器负载压力,且开发成本低,对于服务器的改动很小,用最低成本的方式满足中小型web应用系统中对于实时显示数据变化的需求;另外不需用户手动不断拉取数据,大大提升了用户的体验。

在进一步的方案中,应用服务器根据特定公式来计算用户端下次请求数据的间隔时间,通过该公式计算的用户端下次请求数据的间隔时间在一定范围之内,一方面让所有用户端的实时数据请求是均匀的,且让服务器能够很好地消化所有用户端的数据请求,保证了服务器的负载压力不会太大,另一方面让用户不需手动不断拉取数据,且等待的时间不长,提升用户体验。更进一步地,应用服务器在每一个单位时间区间内将当前的总请求量置为0并重新统计当前的总请求量,可以进一步保证服务器的负载压力较小,并能够在服务器超负载时及时反馈给用户端以作出相应的响应。

附图说明

图1是本发明优选实施例的web即时数据显示的方法的流程示意图。

具体实施方式

下面对照附图并结合优选的实施方式对本发明作进一步说明。

如图1所示,本发明优选实施例公开了一种web即时数据显示的方法,包括以下步骤:

S1:响应于用户端的数据请求,应用服务器根据当前的总请求量来计算用户端下次请求数据的间隔时间;

在一个实施例中,在计算用户端下次请求数据的间隔时间之后应用服务器还对用户端的数据请求是否为首次请求进行判断,如果是,则将当前的总请求量加1;如果否,则当前的总请求量保持不变;判断用户端的数据请求为首次请求包括该用户端第一次对该应用服务器进行请求以及该用户端断开数据请求后重新对该应用服务器的第一次请求。具体地,应用服务器可以在用户端首次请求数据时保存请求数据的当前时间,在用户端非首次请求数据时更新该用户端的请求数据的当前时间,而当前的总请求量即为当前保存的用户的请求数据的时间点的数量。

在一个实施例中,应用服务器在每一个单位时间区间内重新统计当前的总请求量,其中在进入每一个单位时间区间时,首先将当前的总请求量置为0,然后响应于用户端的数据请求,应用服务器在计算用户端下次请求数据的间隔时间之后判断用户端的数据请求是否为在该单位时间区间内的首次请求,如果是,则将当前的总请求量加1;如果否,则当前的总请求量保持不变。其中一个单位时间区间的总时长为1~3s,例如服务器可以以自然时间每3s为一个单位时间,单位时间区间可以为[10:10:00,10:10:03),[10:10:03,10:10:06),[10:10:06,10:10:09)......[10:10:57,10:11:00)等等。具体地,应用服务器可以在进入每一个单位时间区间时,清除所有用户的请求数据的时间点,并在用户端在该单位时间区间内的首次请求数据时存请求数据的当前时间,在用户端在该单位时间区间内的非首次请求数据时更新该用户端的请求数据的当前时间,而当前的总请求量也即为当前保存的用户的请求数据的时间点的数量。

具体地,应用服务器根据下述公式计算用户端下次请求数据的间隔时间:Tia=((N%120)+1)*t,其中,Tia为用户端下次请求数据的间隔时间,N为当前的总请求量,t为10~25ms。N%120为取余数运算,即为N/120得到的余数;例如t为25ms,通过该公式计算得到的用户端下次请求数据的间隔时间在25ms至3000ms之间,一方面让所有用户端的实时数据请求是均匀的,且让服务器能够很好地消化所有用户端的数据请求,保证了服务器的负载压力不会太大,另一方面让用户不需手动不断拉取数据,且等待的时间不长,提升用户体验。

S2:应用服务器将用户端请求的数据和下次请求数据的间隔时间返回给用户端;

S3:用户端获取数据并在间隔时间后再次向应用服务器请求数据,并返回步骤S1。

在一些实施例中,在返回步骤S1之前,应用服务器监测用户端是否终止请求数据,如果是,则将当前的总请求量减1,也即清除该用户端的请求数据的时间点;如果否,则当前的总请求量保持不变,且返回步骤S1。

通过上述方法能够适用于一直不断变化的服务器数据,其中通过实时返回给用户端合理的间隔时间以使得用户端在合理的间隔时间后再次向应用服务器请求数据,以此循环,使得web端请求均匀分布,对服务器负载压力很小,开发成本也较低,也不需对服务器进行较大改动,且能大大提升用户的体验。

本发明的另一优选实施例还公开了一种web即时数据显示的系统,包括应用服务器和至少一个用户端,其中:应用服务器配置为在接收到用户端的数据请求时根据当前的总请求量来计算用户端下次请求数据的间隔时间,并将用户端请求的数据和下次请求数据的间隔时间返回给用户端;用户端配置为对应用服务器进行数据请求,并从应用服务器获取请求的数据和下次请求数据的间隔时间,并在间隔时间后再次向应用服务器请求数据。

在一个实施例中,应用服务器还配置为在计算用户端下次请求数据的间隔时间之后判断用户端的数据请求是否为首次请求,如果是,则将当前的总请求量加1;如果否,当前的总请求量保持不变。

在一个实施例中,应用服务器还配置为在每一个单位时间区间内重新统计当前的总请求量,其中在进入每一个单位时间区间时,首先将当前的总请求量置为0,然后在接收到用户端的数据请求时计算用户端下次请求数据的间隔时间,再判断用户端的数据请求是否为在该单位时间区间内的首次请求,如果是,则将当前的总请求量加1;如果否,当前的总请求量保持不变;进一步地,一个单位时间区间的总时长为1~3s。

在一个实施例中,应用服务器还配置为根据下述公式计算用户端下次请求数据的间隔时间:Tia=((N%120)+1)*t,其中,Tia为用户端下次请求数据的间隔时间,N为当前的总请求量,t为10~25ms。

在一个实施例中,应用服务器还配置为监测用户端是否已经终止请求数据,如果是,则将当前的总请求量减1;如果否,则当前的总请求量保持不变。

本发明的web即时数据显示的方法和系统尤其适用于中小型、同时访问系统的并发量不是很大的场景,例如:单台(8核8G内存)普通服务器40线程或者进程处理响应,单个数据请求平均响应时间为25ms,在3s内服务器可以处理2400次请求(如果需要提高响应速度和吞吐量可以相应提高线程或者进程数),通过本发明的web即时数据显示的方法和系统可以根据服务器的处理能力来合理分配给对服务器进行数据请求的用户端使得web端请求均匀分布,服务器在3s内将该2400个左右的并发请求都处理掉以即时显示数据变化且不会出现排队等待,使得服务器的负载压力较低,并且开发成本小;另外,每个用户每次请求间隔不会超过3s,3s内就返回新的数据,实时性有保障,提升用户的体验。因此,对于访问量、并发量不是很高,且不希望对现有的服务器做太多改动的web系统采用该方案来提供实时数据显示是非常经济、高效的。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。

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