使用javascript的网速测试代码:
Javascript 最简单检测网速的方法。网速很慢,但又得打开 Flash 是一件很痛苦的事情,特别是 Silverlight 来临之际,这个技术可能有点用。
在之前为了测试应用网速,实现了用java applet使用socket的测试方式,测试结果比较准确和稳定,且部署也较简单。但缺点是客户端必须安装JRE或JDK。今天用javascript脚本写了一个通过AJAX的下载一个大文件来计算速度的脚本,作为一个JAVA方式的补充。经过测试,同一台电脑不同的浏览器的速度测试结果也有不少的差距,也说明了脚本的执行与浏览器和HTTP服务器的影响有较大的关系。代码如下:
<html>
<head>
<title>在线网络应用速度测试</title>
<script type="text/javascript" src="jquery.js"></script>
<script language="javascript" >
var data_file="jdk.zip";//要测试的数据文件
var starttime=0;
var endtime=0;
var size=0;//文件长度,由脚本使用HEAD自动计算
</script>
<script language="javascript" >
$(function(){
//提交查询:
$("#test").click(function(){
$("#result").html("网速测试中...");
endtime=0;
url=data_file+"?"+starttime;
//获取文件的长度:
var xhr=$.ajax({
type:"HEAD",
url:url,
success:function(msg){
size=xhr.getResponseHeader('Content-Length');
starttime=new Date().valueOf();
//开始GET数据:
$.get(url,function(data){
endtime=new Date().valueOf();
usetime=endtime-starttime;
size_mb=size/(1024*1024);
var result_text="测试完成,总测试数量"+size_mb.toFixed(2)+"MB,用时"+usetime+"毫秒。<br/>";
var speed=size/(usetime/1000*1024*1024);
result_text+="网络吞吐量:"+speed.toFixed(2)+"MB/秒<br/>";
var speed2=speed*8;
result_text+="网络带宽:"+speed2.toFixed(2)+"Mb/秒</br/>";
$("#result").html(result_text);
})
}
})
})
})
</script>
</head>
<body>
<p></p>
<p></p>
<p><a id="test" href="#" >开始测试</a>
</p>
<p></p>
<p><div id="result"></div>
</body>
</html>
谢谢关注websites博客!