一种并发数据获取方法及系统
技术领域:
本发明涉及网页资源获取领域,尤其是涉及一种并发数据获取方法及系统。
背景技术:
在一般的传统网站的开发模式下,网站程序如CGI(通用网关接口)等,是从入口开始顺序执行,如下面的模式是传统网站的流程说明:
1.网页浏览器等发起资源“入口请求”,如统一资源定位符(即:Universal Resource Locator,以下简称:URL),这个请求会通过超文本传输协议(即:Hype Text Transportation Protocol,以简下称:HTTP)到达Web服务器。
2.Web服务器解析请求内容,按顺序去获取每一个内容资源。
3.把所有内容生成最终的HTML代码发送给网页浏览器。
4.把最终的网页渲染给用户。
在这种情况下,最大的缺点就是给用户终端(网页浏览器)的响应时间最长,如果请求1的时间为t1,请求2的时间为t2,请求3的时间为t3,请求n的时间为t2,他们就是sum(t1,t2,t3,...,tn)之和。
发明内容:
为了减少客户端的响应时间,本发明提供了一种并发数据获取方法,该方法包括:
步骤(1)客户端发起统一资源定位符URL入口请求访问一个网络资源数据;
步骤(2)该入口请求会通过基于超文本传输协议HTTP的网络请求传递到Web服务器;
步骤(3)Web服务器在得到该请求时,通过URL地址描述并根据其访问的内容,通过预先设定的配置文件计算出资源所在的位置;
步骤(4)对每个请求地址绑定一个回调方法;
步骤(5)Web服务器并发发起数据请求获取数据库,服务接口,中间层各种服务的数据;
步骤(6)数据库,服务接口,中间层各自响应数据请求,然后返回数据;
步骤(7)Web服务器在得到后端的各异步数据响应时,通过之前绑定的回调方法,进行单独回调处理,基于HTTP协议给客户端返回数据;
步骤(8)客户端通过脚本语言对返回的数据进行分段响应,填充网页区域。
进一步,步骤(4)中所述回调方法是用于当每一个独立的请求完成或者失败的时候,可以进行单独的处理,可以返回数据、返回事件控制、返回HTML、CSS资源返回错误提示。
进一步,步骤(3)中所述配置文件用于标识各类数据信息所在服务器的地址。
进一步,所述请求的数据包括静态资源数据和动态资源数据,静态资源数据包括:图片,JavaScript脚本语言,层叠样式表单CSS;动态资源数据包括根据不同的参数而变化的数据。
本发明还提供了一种并发数据获取系统,该系统包括:
客户端,发起统一资源定位符URL入口请求访问一个网络资源数据;该入口请求会通过基于超文本传输协议HTTP的网络请求传递到Web服务器;客户端通过脚本语言对返回的数据进行分段响应,填充网页区域;
Web服务器,在得到该请求时,通过URL地址描述并根据其访问的内容,通过预先设定的配置文件计算出资源所在的位置;对每个请求地址绑定一个回调方法;Web服务器并发发起数据请求获取数据库,服务接口,中间层各种服务的数据;Web服务器在得到后端的各异步数据响应时,通过之前绑定的回调方法,进行单独回调处理,基于HTTP协议给客户端返回数据;
数据库,服务接口,中间层,各自响应数据请求,然后返回数据。
进一步,Web所绑定回调方法是用于当每一个独立的请求完成或者失败的时候,可以进行单独的处理,可以返回数据、返回事件控制、返回HTML、CSS资源返回错误提示。
进一步,所述配置文件用于标识各类数据信息所在服务器的地址。
进一步,所述请求的数据包括静态资源数据和动态资源数据,静态资源数据包括:图片,JavaScript脚本语言,层叠样式表单CSS;动态资源数据包括根据不同的参数而变化的数据。
附图说明
图1是根据本发明方法的信号交换示意图;
图2是根据本发明系统的结构图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步说明。
在客户端(网页浏览器)发起HTTP协议的请求时,Web服务端采用select/epoll方式,同时并发的去各数据源点获取所需要的数据,然后异步得到各接口响应的数据,通过事件回调的方法,分段渲染网页,持续的把网页给用户呈现出去,如图1所示,详细的流程如下:
1.客户端(网页浏览器,如IE,chrome,firefox,safari等)发起URL“入口请求”,即Request,访问一个网络资源,这个资源主要是网页,请求数据包括:图片,JavaScript脚本语言,层叠样式表单CSS等各种HTTP资源,可以分为静态资源和动态资源,静态资源就是不用根据不同的参数而变化的资源,如CSS,IMAGE,Javascript代码等,动态资源,就是会根据不同的参数而变化的。这个请求会通过基于HTTP协议的网络请求传递到Web服务器,这一步叫请求步骤(Request step)。
2.Web服务器在得到该入口请求时,通过URL地址描述,分析其访问的资源或者内容是什么,然后根据其访问的内容,通过预先设定的配置文件(如ini文件格式)标出资源所在的位置(如服务器组,资源访问的URL),计算出要出哪些服务器去获取所有的数据,解析其服务内容。例如当用户访问网络视频播放页的时候,Web服务器通过用户访问的URL会判定这是用户的信息还是视频的信息,是网页还是接口数据等,这时判断为要获取视频的信息,视频的信息包括1.基本的简介,标题等,2.视频的文件信息,3.视频的播放权限,4.视频的所有者信息等动态信息,5.另外还包括渲染网页的静态信息,如CSS,Javascript,HTML,Image等,而这5种信息是分布在不同的服务器,通过上面的配置文件预先设定,比如,信息1对应服务器1,信息2对应服务器2,以此类推,知道了获取这5种信息所在的地址,于是Web服务器会对相应的服务器发起内部的URL请求。
当解析完后,得到所有请求的数据的时候,然后对每个请求地址绑定一个回调方法(callback),这个回调方法的作用是:当每一个独立的请求完成或者失败的时候,可以进行单独的处理,是返回数据,还是返回事件控制,还是返回HTML,CSS资源,还是出错了进行错误提示等。在绑定完每个请求的回调方法后,Web服务器会通过curl(一种现有的文件传输工具),epoll(用于复合文件描述符集合),select标签等方式对后面的所有接口,并发发起数据请求,获取后面的数据库,服务接口,中间层,等各种服务的数据。
3.后面的各个数据接口(数据库,服务接口,中间层等),各自响应各自的数据请求,然后返回数据就行了。如果是网页的话,就返回CSS,JS,IMAGE等静态资源,如果是接口的话,不需要静态资源的,就只用返回动态数据就行了。
4.Web服务器在得到后端的各异步数据响应时,通过之前绑定的回调方法,进行每个接口的单独回调处理,可以给客户端(网页浏览器)返回动态数据,也可以返回网页代码(动态数据和静态数据混合)或者其它CSS,JS,IMAGE等静态资源数据,然后通过HTTP协议各自单独的返回给客户端(网页浏览器),这就是Response。
5.客户端(网页浏览器)主要是通过JavaScript脚本语言,把服务器每一部份的数据进行解析(Json,XML,Text数据等)后,完成各自的功能,比如,如果是网页内容,就填充其对应的网页区域,如果是Json(一种轻量级的数据交换格式)/XML/Text数据,就处理数据,完成终端上的对应的功能逻辑,网页浏览器支持对服务端数据的分段响应,然后在每次的响应数据里,可以包括CSS,HTML,Javascript,JSON/XML等格式的数据,通过Javascript脚本语言,对每次的响应进行处理,如显示HTML网页,修改CSS样式,还是进行其它控制等,把每部份的数据分别呈现在网页的各个部分之上。如果是事件控制,就在客户端(网页浏览器)里进行事件方面的控制处理。这样,就完成了一次完整的事件流程。
在这种并发响应的事件流程情况下,最大的优点就是给用户终端(网页浏览器)的响应时间是最优化、最短的,如果请求1的时间为t1,请求2的时间为t2,请求3的时间为t3,请求n的时间为t2,
他们就是max(t1,t2,t3,...,tn),最终网页呈现的速度,仅仅是到后面数据响应的最大时间而已,极快的提高了整个Web服务器响应的时间。
如图2所示,示出了根据本发明系统的结构图,该系统包括:
客户端,发起URL入口请求访问一个网络资源数据;该入口请求会通过基于HTTP协议的网络请求传递到Web服务器;客户端通过脚本语言对返回的数据进行分段响应,填充网页区域;
Web服务器,在得到该请求时,通过URL地址描述并根据其访问的内容,通过预先设定的配置文件计算出资源所在的位置;对每个请求地址绑定一个回调方法;Web服务器并发发起数据请求获取数据库,服务接口,中间层各种服务的数据;Web服务器在得到后端的各异步数据响应时,通过之前绑定的回调方法,进行单独回调处理,基于Http协议给客户端返回数据;
数据库,服务接口,中间层,各自响应数据请求,然后返回数据。
根据本发明的技术方案能够获得以下技术效果:提高了网页的响应速度,最快时间的呈现网页给用户,提升网站的用户体验,同时增加网站的稳定性与健壮性。
以上所述仅为本发明的较佳实施例,并不用于限制本发明创造,凡在本发明创造精神和原则之内所做的任何修改、等同替换和改进等,均包含于本发明的保护范围之内。