`

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

 
阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>
这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



这次认真的测试了三种浏览器(ie/firefox/opera)的xmlhttp并发行为,发现如果用户同时发出很多xmlhttp异步请求,那么浏览器不是一股脑全把请求发出去,而是存在一个最大并发数。我的机器测试发现,ie和ff里面是2,opera是4。

所以说,在设计一个站点时,让ajax页面同时载入数十个xmlhttp请求不是明智的做法。在考虑减少接口耦合的同时,也应该斟酌速度问题。实际上,可以使用某些细化的设计,可以把多种请求绑定到一起发送,从而达到优化的目的。

下面是我的测试代码:


<?php //服务端ajaxserver.php<br />
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"]."/tbegin/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"]."/tend/n";
fwrite($f,"$str");
fclose($f);
echo($str);

?>


//这是.html网页代码:

htmlpublic"-//W3C//DTDHTML4.0Transitional//EN">


NewDocument
<script><br /><!--<br />function$(id)<br />{<br />returndocument.getElementById(id);<br />}<br />functionajax_object(){<br /><br />varA;<br />try{<br />A=newActiveXObject("Msxml2.XMLHTTP");<br />}catch(e){<br />try{<br />A=newActiveXObject("Microsoft.XMLHTTP");<br />}catch(oc){<br />A=null;<br />}<br />}<br />if(!A&&typeofXMLHttpRequest!="undefined")<br />A=newXMLHttpRequest();<br /><br />returnA;<br />}<br /><br />functiondoit(flag)<br />{<br />varuri="ajaxserver.php?mode=opera&flag="+flag;<br />varx=ajax_object();<br /><br />x.open("GET",uri,true);<br />functioncallback()<br />{<br />if(x.readyState!=4)<br />return;<br />if(x.status==200)<br />{<br />$("result").value+=x.responseText;<br />}<br />}<br />if("[XMLHttpRequest]"==x.constructor)<br />{<br />x.onload=callback;<br />}<br />else<br />{<br />x.onreadystatechange=callback;<br />}<br />x.send(null);<br />}<br /><br />functiondoajax()<br />{<br />doit(1);<br />doit(2);<br />doit(3);<br />doit(4);<br />doit(5);<br />}<br /><br /><br /><br />//--><br /></script>









************************************************
下面是测试结果:
IE的测试结果:
1157288179.032begin
1157288179.031begin
1157288181.031end
1157288181.042end
1157288181.053begin
1157288181.064begin
1157288183.053end
1157288183.065begin
1157288183.094end
1157288185.095end

firefox的测试结果
1157288092.361begin
1157288092.382begin
1157288094.361end
1157288094.382end
1157288094.393begin
1157288094.394begin
1157288096.44end
1157288096.423end
1157288096.425begin
1157288098.435end


opera的测试结果:
1157288410.881begin
1157288410.894begin
1157288410.892begin
1157288410.893begin
1157288412.891end
1157288412.892end
1157288412.925begin
1157288412.924end
1157288412.925begin
1157288412.923end
1157288414.935end
1157288414.955end
cited: http://sithere.net/article.asp?id=729&page=3



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics