[发明专利]贪婪式AJAX请求快响应调度算法有效
申请号: | 201210357432.9 | 申请日: | 2012-09-24 |
公开(公告)号: | CN102833356A | 公开(公告)日: | 2012-12-19 |
发明(设计)人: | 许峰;周文欢;马鸿旭;刘璇 | 申请(专利权)人: | 河海大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 柏尚春 |
地址: | 210098 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 贪婪 ajax 请求 响应 调度 算法 | ||
技术领域
本发明涉及一种贪婪式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请求超时、用户浏览器假死等问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河海大学,未经河海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210357432.9/2.html,转载请声明来源钻瓜专利网。