使用javascript的网速测试代码

在之前为了测试应用网速,实现了用java applet使用socket的测试方式,测试结果比较准确和稳定,且部署也较简单。但缺点是客户端必须安装JRE或JDK。今天用javascript脚本写了一个通过AJAX的下载一个大文件来计算速度的脚本,作为一个JAVA方式的补充。经过测试,同一台电脑不同的浏览器的速度测试结果也有不少的差距,也说明了脚本的执行与浏览器和HTTP服务器的影响有较大的关系。代码如下:


jsperf.htm

<html>
<head><title>在线网络应用速度测试</title>
    <script type="text/javascript" src="jquery-1.4.4.min.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>


你可能感兴趣的:(JavaScript,网速测试)