retweet

xmlhttp存在最大并发数,ajax设计应有所斟酌

这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp 异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。 所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。 下面是我的测试代码: function _getmicrotime() { list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } function _exit($msg) { echo("$msg\n"); exit(); } $mode = $_GET["mode"]; $f = fopen("$mode.log", "a+"); if(!$f) _exit(); $begin = _getmicrotime(); $str = "$begin\t". $_GET["flag"] . "\t begin \n"; fwrite($f, "$str"); fclose($f); echo($str); sleep(2); $f = fopen("$mode.log", "a+"); if(!$f) _exit(); $end = _getmicrotime(); $str = "$end\t". $_GET["flag"] . "\t end \n"; fwrite($f, "$str"); fclose($f); echo($str); ?> //这是.html网页代码: New Document ************************************************ 下面是测试结果: IE的测试结果: 1157288179.03 2 begin 1157288179.03 1 begin 1157288181.03 1 end 1157288181.04 2 end 1157288181.05 3 begin 1157288181.06 4 begin 1157288183.05 3 end 1157288183.06 5 begin 1157288183.09 4 end 1157288185.09 5 end firefox的测试结果 1157288092.36 1 begin 1157288092.38 2 begin 1157288094.36 1 end 1157288094.38 2 end 1157288094.39 3 begin 1157288094.39 4 begin 1157288096.4 4 end 1157288096.42 3 end 1157288096.42 5 begin 1157288098.43 5 end opera的测试结果: 1157288410.88 1 begin 1157288410.89 4 begin 1157288410.89 2 begin 1157288410.89 3 begin 1157288412.89 1 end 1157288412.89 2 end 1157288412.92 5 begin 1157288412.92 4 end 1157288412.92 5 begin 1157288412.92 3 end 1157288414.93 5 end 1157288414.95 5 end
--EOF--

若无特别说明,本站文章均为原创,转载请保留链接,谢谢

本文地址: http://www.dulao5.com/front-end/2006/09/03/about-ajax-connections-limit.textile