CN102833356B - 贪婪式ajax请求快响应调度算法 - Google Patents
贪婪式ajax请求快响应调度算法 Download PDFInfo
- Publication number
- CN102833356B CN102833356B CN201210357432.9A CN201210357432A CN102833356B CN 102833356 B CN102833356 B CN 102833356B CN 201210357432 A CN201210357432 A CN 201210357432A CN 102833356 B CN102833356 B CN 102833356B
- Authority
- CN
- China
- Prior art keywords
- request
- ajax
- response time
- response
- queue
- 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
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开一种贪婪式AJAX请求快响应调度算法,将AJAX请求按照响应时间级别分成三大类请求队列;对于任意一个AJAX请求,根据其响应时间、按照先进先出的策略将其归类到相应的一类请求队列中;当两个中的某一个响应队列在进行一个AJAX请求时,另一个响应队列只能进行比上述正在进行的AJAX请求响应时间短的其他类请求队列中的AJAX请求,除非其他类请求队列中已经不存在响应时间更短的AJAX请求时,才进行与上述正在进行的AJAX请求具有同一响应时间级别的AJAX请求。本发明能避免因请求时间过长而造成的AJAX请求超时、用户浏览器假死等问题。
Description
技术领域
本发明涉及一种贪婪式AJAX请求快响应调度算法,属于Web 应用程序技术领域。
背景技术
基于Web的传统应用在当今的企业中得到了广泛的应用, Web页面仅仅会提供用户填写信息的表单或者到其他资源的链接,比如另外一个网页的链接。用户唯一可能做的是向Web表单输入数据或者是单击一个链接,这种方式会因为长时间的延迟导致十分糟糕的终端用户体验。Ajax是近些年正式提出的一项综合技术,其主要特点是为Web开发提供异步的数据传输和交换方式,可以在不重载刷新界面的情况下与服务器进行数据交换,Ajax技术的用户交互的关键在于,可以仅向服务器发送并取回必需的数据而不是当前呈现的整Web页的庞大的数据(HTML、CSS、图片、脚本、FLASH等)。因为在服务器和客户端之间传输的数据大量减少,那么客户端得到的响应也就更快,用户在等待的时间内可以处理其他事情。
Ajax的应用,虽然功能强大并且是对用户友好的,但是在向服务器端发送请求和接收从服务器返回的响应的过程中,一些问题仍然不可忽视。一个最主要的问题就是客户端和服务器之间发起通信的次数。如果请求发送的很频繁,那么服务器会因为不断的处理来自多个不同用户的请求,而陷入僵局。从而客户端也会一直在等待服务器的响应而看起来没有任何反应。目前普遍的解决方式是根据HTTP规范规定,客户机与服务器请求数不能超过2个,但是这个也会带来其他问题,如果请求数很多且前面2个请求的响应时间过长,内置的排队机制就没有提供足够的控制力而造成后面有些请求相应时间短的也会被阻塞,用户请求同样不能被处理。
发明内容
发明目的:针对目前浏览器存在的弊端题,本发明提供一种工作效率高的贪婪式AJAX请求快响应调度算法。
技术方案:一种贪婪式AJAX请求快响应调度算法,包括:
将AJAX请求按照响应时间级别分成三大类请求队列;其中,第一类请求队列中的AJAX请求是响应时间最长;第二类请求队列中的AJAX请求响应时间较长;第三类请求队列中的AJAX请求响应时间最短。
所述第一类请求队列中的AJAX请求响应时间在1s±0.3s的请求,主要是涉及到与请求服务器端有数据库或者文件存取操作的AJAX请求(如调用数据,提交表单等);
所述第二类请求队列中的AJAX请求是涉及到页面重载方面的请求,响应时间在0.6s±0.3s因为包含页面的http请求,所以时间会较慢(如URL重定位)。
所述第三类请求队列中的AJAX请求是涉及到页面一些布局显示方面的请求,因为所有的http请求已经完成,响应时间比较短,响应时间为0.2s±0.1s,主要是页面操作(如CSS文件显示,JS文件调用等)请求。
如果按照传统的请求方式,一个个请求按照FIFO,先来先出的方式,进行排队,这样如果有响应时间较长的请求存在,那么其他一些短响应原本可以迅速产生,但是他们实际上没有发送,而是一直在等待前两个请求返回并释放连接。很多场合下,会遇到超时的情况,当设置了超时但是同时又没有使用重试的时候,因为前两个请求超时,其他连接因为等待连接的时间过长也会跟着超时。
而本发明的算法是,设计三类响应时间级别不同的请求队列,目标的响应队列设为两个,对于任意一个AJAX请求,根据其响应时间、按照先进先出的策略将其归类到相应的一类请求队列中;当两个中的某一个响应队列在进行一个AJAX请求时,另一个响应队列只能进行比上述正在进行的AJAX请求响应时间短的其他类请求队列中的AJAX请求,除非其他类请求队列中已经不存在响应时间更短的AJAX请求时,才进行与上述正在进行的AJAX请求具有同一响应时间级别的AJAX请求。这样就使得如果对于都是同一响应时间级别的AJAX请求,算法只是对它们进行简单的调度,使得两个连接并发请求;对于存在处于不同响应时间级别的AJAX请求,针对与每一个AJAX请求,本发明都通过分析其响应时间后给它们打上时间标记,让两个响应时间较长在存在有响应时间较短的AJAX请求时不同时进行,而是在进行一个较长响应时间级别的AJAX请求时,能够同时处理一个较短响应时间级别的AJAX请求,这样既能够在最短的时间内处理完所有的AJAX请求,又能避免因请求时间过长而造成的AJAX请求超时、用户浏览器假死等问题。
有益效果:与现有技术相比,本发明提供的贪婪式AJAX请求快响应调度算法,在进行一个较长响应时间级别的AJAX请求时,能够同时处理一个较短响应时间级别的AJAX请求,这样既能够在最短的时间内处理完所有的AJAX请求,达到一种贪婪式的最优化的效果,从而使得能避免因请求时间过长而造成的AJAX请求超时、用户浏览器假死等问题。
附图说明
图1为本发明实施例的框架图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1所示,设计用三个数组表示三个请求队列,分别是A1{a11,a12,a13…a1n}、A2{a21,a22,a23…a2n}、A3{a31,a32,a33…a3n},其中A1、A2、A3代表着三种请求时间级别的AJAX请求,其中A1为时间最长的,A2为时间较长的,A3为时间最短的。B1{b11,b12,b13…b1n}、B2{b21,b22,b23…b2n}为响应队列,这个两个响应队列可以同时并发响应,此响应队列按照先进先出的策略将AJAX请求向服务器发送。
定义处理这种贪婪式队列基本操作的方法有四个: get(),put(),size()和prepare ()。
get():检索队列中的下一个元素。
put():用来增加一个新元素到队列中。
size():返回队列中元素个数。
prepare ():用来检测AJAX是属于哪一类响应时间级别的请求。
初始状态时,在整个浏览器请求过程中所有的AJAX请求根据prepare ()方法按照响应时间的长短进入不同的请求队列A1、A2和A3。此算法的核心思想是如何方法是从三个请求队列选择一个AJAX请求进入两个响应队列。
具体操作是:
(1)按照A3、A2、A1的顺序,利用size()方法返回每一个请求队列中的请求数,如果size(A3)>0,则将A3中的第一个AJAX请求增加到B1的响应队列中;如果size(A3)=0则按照此方法依次检测A2、A1请求队列,如果存在AJAX请求则将AJAX请求增加到B2的响应队列中。
(2)当B1或者B2的响应队列中完成一个AJAX请求时,检测另一个正在进行的响应队列B2或者B1,检测出此AJAX请求是属于的请求的响应时间级别,如果此级别为A1,则进入另一个响应队列的只能是A2或者A3中的一个AJAX请求,如果此级别为A2,那么进入另一个响应队列的只能是A3中的一个AJAX请求。
(3)当另一个响应队列也完成时,也按照(2)中的策略选择即将进入响应队列的下一个AJAX请求是来自于哪一个请求队列。
(4)对于(2)中的策略,只有当不存在比起自身响应时间更短的AJAX请求时,才将和自己响应时间相同的或者更长的AJAX请求增加到响应队列中。
(5)如此反复的执行,直到所有的AJAX请求结束或者浏览器关闭,所有的请求队列和响应队列释放资源,为下一轮的AJAX请求初始化。
通过这样的处理主要是为了在进行一个较长响应时间级别的AJAX请求时,能够同时处理一个较短响应时间级别的AJAX请求,这样既能够在最短的时间内处理完所有的AJAX请求,达到一种贪婪式的最优化的效果,从而使得能避免因请求时间过长而造成的AJAX请求超时、用户浏览器假死等问题。
Claims (1)
1.一种贪婪式AJAX请求快响应调度算法,其特征在于,包括:
将AJAX请求按照响应时间级别分成三大类请求队列;其中,第一类请求队列中的AJAX请求是响应时间最长;第二类请求队列中的AJAX请求响应时间较长;第三类请求队列中的AJAX请求响应时间最短;
所述第一类请求队列中的AJAX请求响应时间在1s±0.3s的请求,主要是涉及到与请求服务器端有数据库或者文件存取操作的AJAX请求;
所述第二类请求队列中的AJAX请求是涉及到页面重载方面的请求,响应时间在0.6s±0.3s;
第三类请求队列中的AJAX请求是涉及到页面一些布局显示方面的请求,响应时间为0.2s±0.1s,主要是页面操作请求;
将目标的响应队列设为两个;
对于任意一个AJAX请求,根据其响应时间、按照先进先出的策略将其归类到相应的一类请求队列中;
当两个中的某一个响应队列在进行一个AJAX请求时,另一个响应队列只能进行比上述正在进行的AJAX请求响应时间短的其他类请求队列中的AJAX请求,除非其他类请求队列中已经不存在响应时间更短的AJAX请求时,才进行与上述正在进行的AJAX请求具有同一响应时间级别的AJAX请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210357432.9A CN102833356B (zh) | 2012-09-24 | 2012-09-24 | 贪婪式ajax请求快响应调度算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210357432.9A CN102833356B (zh) | 2012-09-24 | 2012-09-24 | 贪婪式ajax请求快响应调度算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102833356A CN102833356A (zh) | 2012-12-19 |
CN102833356B true CN102833356B (zh) | 2015-04-29 |
Family
ID=47336323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210357432.9A Active CN102833356B (zh) | 2012-09-24 | 2012-09-24 | 贪婪式ajax请求快响应调度算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102833356B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015095030A1 (en) * | 2013-12-19 | 2015-06-25 | Jvl Ventures, Llc | Systems, methods, and computer program products for service processing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1606301A (zh) * | 2004-07-09 | 2005-04-13 | 清华大学 | 一种共享资源访问的调度控制方法及装置 |
US7228341B2 (en) * | 2000-04-07 | 2007-06-05 | Giacalone Jr Louis D | Method and system for electronically distributing, displaying and controlling advertising and other communicative media |
-
2012
- 2012-09-24 CN CN201210357432.9A patent/CN102833356B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7228341B2 (en) * | 2000-04-07 | 2007-06-05 | Giacalone Jr Louis D | Method and system for electronically distributing, displaying and controlling advertising and other communicative media |
CN1606301A (zh) * | 2004-07-09 | 2005-04-13 | 清华大学 | 一种共享资源访问的调度控制方法及装置 |
Non-Patent Citations (1)
Title |
---|
一种基于多优先级队列和QoS的服务调度策略;姜文超;《小型微型计算机系统》;20080330;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN102833356A (zh) | 2012-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102867007B (zh) | 网页浏览方法及装置 | |
EP2352104A1 (en) | Method and device for loading web page | |
US20090172093A1 (en) | Technique For Previously Providing Estimate of Time Required For Processing | |
TWI672027B (zh) | 網頁中的資料處理方法、裝置及系統 | |
CN102487403B (zh) | 由服务器端执行js的方法和装置 | |
CN101408877A (zh) | 树节点加载系统及其方法 | |
CN110990736A (zh) | 页面加载方法、装置、终端设备和存储介质 | |
CN105447138A (zh) | 用于服务器的方法及系统 | |
CN112559296A (zh) | 基于prometheus的虚拟机监控方法和工具、电子设备、存储介质 | |
CN102833356B (zh) | 贪婪式ajax请求快响应调度算法 | |
CN101510220A (zh) | 一种向用户端推送浮出页面的方法、装置及系统 | |
CN104461893B (zh) | 数据处理方法与数据处理装置 | |
CN108292236A (zh) | 一种信息处理方法及装置 | |
EP3026860A1 (en) | Method and system for transmission management of full configuration synchronization between eml-nml | |
CN116192985B (zh) | 一种数据传输方法、装置及系统 | |
CN116776030A (zh) | 灰度发布方法、装置、计算机设备、存储介质 | |
CN112711485A (zh) | 一种消息处理方法和装置 | |
CN103051511B (zh) | 一种消息数据的处理方法及装置 | |
CN114050909B (zh) | 模拟邮件的演练方法、系统和电子设备 | |
CN109697166A (zh) | 一种测试数据准备方法及相关装置 | |
CN102761527B (zh) | 集群中服务的访问方法及系统 | |
CN103618746A (zh) | 一种基于推送指令的客户端服务器通信方法 | |
CN110622135B (zh) | 在涉及欠佳网络条件的情形下提供内容项的系统和方法 | |
CN110020359B (zh) | 应用在网页前端的数据处理方法、装置及存储介质 | |
CN110598155A (zh) | 一种Ajax请求调用方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |