CN102833356A - 贪婪式ajax请求快响应调度算法 - Google Patents
贪婪式ajax请求快响应调度算法 Download PDFInfo
- Publication number
- CN102833356A CN102833356A CN2012103574329A CN201210357432A CN102833356A CN 102833356 A CN102833356 A CN 102833356A CN 2012103574329 A CN2012103574329 A CN 2012103574329A CN 201210357432 A CN201210357432 A CN 201210357432A CN 102833356 A CN102833356 A CN 102833356A
- Authority
- CN
- China
- Prior art keywords
- request
- ajax
- response
- response time
- 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.)
- Granted
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 (4)
1.一种贪婪式AJAX请求快响应调度算法,其特征在于,包括:
将AJAX请求按照响应时间级别分成三大类请求队列;其中,第一类请求队列中的AJAX请求是响应时间最长;第二类请求队列中的AJAX请求响应时间较长;第三类请求队列中的AJAX请求响应时间最短;
将目标的响应队列设为两个;
对于任意一个AJAX请求,根据其响应时间、按照先进先出的策略将其归类到相应的一类请求队列中;
当两个中的某一个响应队列在进行一个AJAX请求时,另一个响应队列只能进行比上述正在进行的AJAX请求响应时间短的其他类请求队列中的AJAX请求,除非其他类请求队列中已经不存在响应时间更短的AJAX请求时,才进行与上述正在进行的AJAX请求具有同一响应时间级别的AJAX请求。
2.如权利要求1所述的贪婪式AJAX请求快响应调度算法,其特征在于:所述第一类请求队列中的AJAX请求响应时间在1s±0.3s的请求,主要是涉及到与请求服务器端有数据库或者文件存取操作的AJAX请求。
3.如权利要求1所述的贪婪式AJAX请求快响应调度算法,其特征在于:所述第二类请求队列中的AJAX请求是涉及到页面重载方面的请求,响应时间在0.6s±0.3s。
4.如权利要求1所述的贪婪式AJAX请求快响应调度算法,其特征在于:所述第三类请求队列中的AJAX请求是涉及到页面一些布局显示方面的请求,响应时间为0.2s±0.1s,主要是页面操作请求。
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 true CN102833356A (zh) | 2012-12-19 |
CN102833356B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106031088A (zh) * | 2013-12-19 | 2016-10-12 | 谷歌公司 | 用于服务处理的系统、方法和计算机程序产品 |
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的服务调度策略", 《小型微型计算机系统》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106031088A (zh) * | 2013-12-19 | 2016-10-12 | 谷歌公司 | 用于服务处理的系统、方法和计算机程序产品 |
CN106031088B (zh) * | 2013-12-19 | 2019-07-26 | 谷歌有限责任公司 | 用于管理过程请求的系统、方法和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102833356B (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104932932B (zh) | 一种业务异步处理方法、装置和系统 | |
Huang et al. | When backpressure meets predictive scheduling | |
CN102867007B (zh) | 网页浏览方法及装置 | |
EP3255553B1 (en) | Transmission control method and device for direct memory access | |
CN103685309B (zh) | 面向地图可视化瓦片服务接入的异步请求队列的建立方法 | |
US20120167108A1 (en) | Model for Hosting and Invoking Applications on Virtual Machines in a Distributed Computing Environment | |
CN110119307B (zh) | 数据处理请求的处理方法、装置、存储介质及电子装置 | |
US10218775B2 (en) | Methods for servicing web service requests using parallel agile web services and devices thereof | |
TW201141134A (en) | HTTP optimization, multi-homing, mobility and priority | |
WO2014206289A1 (en) | Method and apparatus for outputting log information | |
CN101408877A (zh) | 树节点加载系统及其方法 | |
CN111343288B (zh) | 作业调度方法、系统及计算设备 | |
JP2020521238A (ja) | キャッシュ最適化及び効率的な処理のためのデータ集約の方法 | |
CN102487403A (zh) | 由服务器端执行js的方法和装置 | |
CN104333573A (zh) | 一种大并发量请求的处理方法及处理系统 | |
CN109688184A (zh) | 基于日志的资源调整方法、设备、存储介质及装置 | |
CN107894945A (zh) | 埋点添加方法、移动终端及计算机可读存储介质 | |
CN112306851A (zh) | 一种自动化测试方法和装置 | |
CN104461893B (zh) | 数据处理方法与数据处理装置 | |
CN102833356A (zh) | 贪婪式ajax请求快响应调度算法 | |
CN104065684B (zh) | 信息处理方法、电子设备和终端设备 | |
CN110347477B (zh) | 一种云环境下服务自适应部署方法和装置 | |
CN112711485A (zh) | 一种消息处理方法和装置 | |
CN103051511B (zh) | 一种消息数据的处理方法及装置 | |
CN108664550A (zh) | 一种对用户行为数据进行漏斗分析方法及装置 |
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 |