贪婪式ajax请求快响应调度算法的制作方法

文档序号:7861210阅读:377来源:国知局
专利名称:贪婪式ajax请求快响应调度算法的制作方法
技术领域
本发明涉及一种贪婪式AJAX请求快响应调度算法,属于Web应用程序技术领域。
背景技术
基于Web的传统应用在当今的企业中得到了广泛的应用,Web页面仅仅会提供用户填写信息的表单或者到其他资源的链接,比如另外ー个网页的链接。用户唯一可能做的是向Web表单输入数据或者是单击ー个链接,这种方式会因为长时间的延迟导致十分糟糕的終端用户体验。Ajax是近些年正式提出的ー项综合技术,其主要特点是为Web开发提供异步的数据传输和交換方式,可以在不重载刷新界面的情况下与服务器进行数据交換,Ajax技术的用户交互的关键在于,可以仅向服务器发送并取回必需的数据而不是当前呈现的整Web页的庞大的数据(HTML、CSS、图片、脚本、FLASH等)。因为在服务器和客户端之间传输的数据大量減少,那么客户端得到的响应也就更快,用户在等待的时间内可以处理其他事情。 Ajax的应用,虽然功能強大并且是对用户友好的,但是在向服务器端发送请求和接收从服务器返回的响应的过程中,ー些问题仍然不可忽视。ー个最主要的问题就是客户端和服务器之间发起通信的次数。如果请求发送的很頻繁,那么服务器会因为不断的处理来自多个不同用户的请求,而陷入僵局。从而客户端也会一直在等待服务器的响应而看起来没有任何反应。目前普遍的解决方式是根据HTTP规范規定,客户机与服务器请求数不能超过2个,但是这个也会带来其他问题,如果请求数很多且前面2个请求的响应时间过长,内置的排队机制就没有提供足够的控制カ而造成后面有些请求相应时间短的也会被阻塞,用户请求同样不能被处理。

发明内容
发明目的针对目前浏览器存在的弊端题,本发明提供ー种工作效率高的贪婪式AJAX请求快响应调度算法。技术方案一种贪婪式AJAX请求快响应调度算法,包括
将AJAX请求按照响应时间级别分成三大类请求队列;其中,第一类请求队列中的AJAX请求是响应时间最长;第二类请求队列中的AJAX请求响应时间较长;第三类请求队列中的AJAX请求响应时间最短。所述第一类请求队列中的AJAX请求响应时间在ls±0. 3s的请求,主要是涉及到与请求服务器端有数据库或者文件存取操作的AJAX请求(如调用数据,提交表单等);
所述第二类请求队列中的AJAX请求是涉及到页面重载方面的请求,响应时间在
O.6s±O. 3s因为包含页面的http请求,所以时间会较慢(如URL重定位)。所述第三类请求队列中的AJAX请求是涉及到页面ー些布局显示方面的请求,因为所有的http请求已经完成,响应时间比较短,响应时间为O. 2s±0. Is,主要是页面操作(如CSS文件显示,JS文件调用等)请求。
如果按照传统的请求方式,一个个请求按照FIFO,先来先出的方式,进行排队,这样如果有响应时间较长的请求存在,那么其他ー些短响应原本可以迅速产生,但是他们实际上没有发送,而是一直在等待前两个请求返回并释放连接。很多场合下,会遇到超时的情况,当设置了超时但是同时又没有使用重试的时候,因为前两个请求超时,其他连接因为等待连接的时间过长也会跟着超吋。而本发明的算法是,设计三类响应时间级别不同的请求队列,目标的响应队列设为两个,对于任意ー个AJAX请求,根据其响应时间、按照先进先出的策略将其归类到相应的一类请求队列中;当两个中的某ー个响应队列在进行ー个AJAX请求时,另ー个响应队列只能进行比上述正在进行的AJAX请求响应时间短的其他类请求队列中的AJAX请求,除非其他类请求队列中已经不存在响应时间更短的AJAX请求时,才进行与上述正在进行的AJAX请求具有同一响应时间级别的AJAX请求。这样就使得如果对于都是同一响应时间级别的AJAX请求,算法只是对它们进行简单的调度,使得两个连接并发请求;对于存在处于不同响应时间级别的AJAX请求,针对与每ー个AJAX请求,本发明都通过分析其响应时间后给它们打上时间标记,让两个响应时间较长在存在有响应时间较短的AJAX请求时不同时进行,而是在进行ー个较长响应时间级别的AJAX请求吋,能够同时处理ー个较短响应时间级别的AJAX请求,这样既能够在最短的时间内处理完所有的AJAX请求,又能避免因请求时 间过长而造成的AJAX请求超时、用户浏览器假死等问题。有益效果与现有技术相比,本发明提供的贪婪式AJAX请求快响应调度算法,在进行ー个较长响应时间级别的AJAX请求吋,能够同时处理ー个较短响应时间级别的AJAX请求,这样既能够在最短的时间内处理完所有的AJAX请求,达到ー种贪婪式的最优化的效果,从而使得能避免因请求时间过长而造成的AJAX请求超时、用户浏览器假死等问题。


图I为本发明实施例的框架图。
具体实施例方式下面结合具体实施例,进ー步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。如图I所示,设计用三个数组表示三个请求队列,分别是Al {all, al2, al3···aln}、A2 {a21, a22, a23…a2n}、A3 {a31, a32, a33…a3n},其中 Al、A2、A3 代表着三种请求时间级别的AJAX请求,其中Al为时间最长的,A2为时间较长的,A3为时间最短的。BI{bll, bl2, bl3…bln}、B2 {b21, b22, b23…b2n}为响应队列,这个两个响应队列可以同时并发响应,此响应队列按照先进先出的策略将AJAX请求向服务器发送。定义处理这种贪婪式队列基本操作的方法有四个get(),put(),sizeO和prepare O。get O :检索队列中的下ー个元素。putO :用来増加ー个新元素到队列中。SizeQ :返回队列中元素个数。
prepare 0 :用来检测AJAX是属于哪ー类响应时间级别的请求。初始状态时,在整个浏览器请求过程中所有的AJAX请求根据prepare O方法按照响应时间的长短进入不同的请求队列Al、A2和A3。此算法的核心思想是如何方法是从三个请求队列选择ー个AJAX请求进入两个响应队列。具体操作是
(I)按照A3、A2、Al的顺序,利用SizeO方法返回每ー个请求队列中的请求数,如果size (A3) >0,则将A3中的第一个AJAX请求增加到BI的响应队列中;如果size (A3) =0则按照此方法依次检测A2、A1请求队列,如果存在AJAX请求则将AJAX请求增加到B2的响应队列中。(2)当BI或者B2的响应队列中完成ー个AJAX请求时,检测另ー个正在进行的响 应队列B2或者BI,检测出此AJAX请求是属于的请求的响应时间级别,如果此级别为Al,则进入另一个响应队列的只能是A2或者A3中的ー个AJAX请求,如果此级别为A2,那么进入另ー个响应队列的只能是A3中的ー个AJAX请求。(3)当另ー个响应队列也完成时,也按照(2)中的策略选择即将进入响应队列的下ー个AJAX请求是来自于哪ー个请求队列。(4)对于(2)中的策略,只有当不存在比起自身响应时间更短的AJAX请求吋,才将和自己响应时间相同的或者更长的AJAX请求增加到响应队列中。(5)如此反复的执行,直到所有的AJAX请求结束或者浏览器关闭,所有的请求队列和响应队列释放资源,为下ー轮的AJAX请求初始化。通过这样的处理主要是为了在进行ー个较长响应时间级别的AJAX请求吋,能够同时处理一个较短响应时间级别的AJAX请求,这样既能够在最短的时间内处理完所有的AJAX请求,达到ー种贪婪式的最优化的效果,从而使得能避免因请求时间过长而造成的AJAX请求超时、用户浏览器假死等问题。
权利要求
1.一种贪婪式AJAX请求快响应调度算法,其特征在于,包括 将AJAX请求按照响应时间级别分成三大类请求队列;其中,第一类请求队列中的AJAX请求是响应时间最长;第二类请求队列中的AJAX请求响应时间较长;第三类请求队列中的AJAX请求响应时间最短; 将目标的响应队列设为两个; 对于任意ー个AJAX请求,根据其响应时间、按照先进先出的策略将其归类到相应的ー类请求队列中; 当两个中的某ー个响应队列在进行ー个AJAX请求时,另ー个响应队列只能进行比上述正在进行的AJAX请求响应时间短的其他类请求队列中的AJAX请求,除非其他类请求队列中已经不存在响应时间更短的AJAX请求时,才进行与上述正在进行的AJAX请求具有同一响应时间级别的AJAX请求。
2.如权利要求I所述的贪婪式AJAX请求快响应调度算法,其特征在于所述第一类请求队列中的AJAX请求响应时间在ls±0. 3s的请求,主要是涉及到与请求服务器端有数据库或者文件存取操作的AJAX请求。
3.如权利要求I所述的贪婪式AJAX请求快响应调度算法,其特征在于所述第二类请求队列中的AJAX请求是涉及到页面重载方面的请求,响应时间在O. 6s±0. 3s。
4.如权利要求I所述的贪婪式AJAX请求快响应调度算法,其特征在于所述第三类请求队列中的AJAX请求是涉及到页面ー些布局显示方面的请求,响应时间为O. 2s±0. Is,主要是页面操作请求。
全文摘要
本发明公开一种贪婪式AJAX请求快响应调度算法,将AJAX请求按照响应时间级别分成三大类请求队列;对于任意一个AJAX请求,根据其响应时间、按照先进先出的策略将其归类到相应的一类请求队列中;当两个中的某一个响应队列在进行一个AJAX请求时,另一个响应队列只能进行比上述正在进行的AJAX请求响应时间短的其他类请求队列中的AJAX请求,除非其他类请求队列中已经不存在响应时间更短的AJAX请求时,才进行与上述正在进行的AJAX请求具有同一响应时间级别的AJAX请求。本发明能避免因请求时间过长而造成的AJAX请求超时、用户浏览器假死等问题。
文档编号H04L29/08GK102833356SQ20121035743
公开日2012年12月19日 申请日期2012年9月24日 优先权日2012年9月24日
发明者许峰, 周文欢, 马鸿旭, 刘璇 申请人:河海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1