http://www.xm100.com/online/sd.asp看看原理你就明白了

解决方案 »

  1.   

    <script>
    i=1
    var autourl=new Array()
    autourl[1]="http://bbs.hidotnet.com"
    autourl[2]="http://anf.hidotnet.com"
    function choose(url)
    {
      if(i){top.location=url;i=0}
    }
    function run()
    {
      for(var i=1;i<autourl.length;i++)
      document.write("<img src="+autourl[i]+" width=1 height=1 onerror=choose('"+autourl[i]+"')>")
    }
    run()
    </script>详情:http://blog.csdn.net/iuhxq/archive/2006/03/07/618286.aspx
      

  2.   

    前段时间有个高手在csdn上发布的,叫啥俺忘记了,不好意思~~
    改名成另存为hta文件就可以直接使用了<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
    <meta http-equiv="Content-Language" content="zh-cn" />
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="emu">
    <META NAME="Keywords" CONTENT="emu">
    <META NAME="Description" CONTENT="net work tester">
    <TITLE> 网络速度测试 </TITLE>
    </HEAD><BODY>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var resources = [
    "http://www.csdn.net/",
    "http://community.csdn.net/",
    "http://blog.csdn.net/",
    "http://chat.csdn.net/",
    "http://mag.csdn.net/",
    "http://blogdev.csdn.net/",
    "http://mobile.csdn.net/",
    "http://training.csdn.net/",
    "http://job.csdn.net/",
    "http://wiki.csdn.net/",
    "http://dev.csdn.net/",
    "http://news.csdn.net/",
    "http://61.186.252.131/"
    ];
    var result = [];
    var succCount,failCount,t0,checktimes = 10;
    var minLength = 1;
    var timeCount,fso,fsos,fileName;
    try{
    fso = new ActiveXObject("Scripting.FileSystemObject");
    }catch(e){
    alert("对不起,您的操作系统不支持文件系统对象,无法完成测试");
    close();
    }
    function testAsync(){
    var s = location.href.replace(/file:\/*/,"");
    s = s.substring(0,s.lastIndexOf("/")+1).replace(/\//g,"\\").replace(/%20/g," ")
    if(/\\temp\\rar\$/i.test(s)){alert("请把文件解压到本地目录再运行");close();return;}
    with(document.getElementById("f")) 
    if(defaultValue ==value || value==""){alert("请先填写测试地点");focus();select();return;}
    if((document.fo.nType[0].checked||netType.value==netType.defaultValue) && !confirm("您真的无法确认您所使用的网络类型吗?"))return;
    if(netType.value==""){alert("请选择网络类型");return;}
    fileName = s+document.getElementById("f").value+"的测试报告.htm"
    clipboardData.setData('Text',fileName);
    fsos = fso.CreateTextFile(fileName,true);
    fsos.WriteLine("<html>\n<head>\n\t<title>"+document.getElementById("f").value+"的测试报告</title>\n</head>")
    var d = new Date();
    fsos.WriteLine("<body>\n<table align=center bgcolor=black cellspacing=1><tbody bgcolor=white>\n\t<tr>\n\t\t<td colspan="+(checktimes+2)+">\n\t\t\t");
    fsos.WriteLine(d.getFullYear()+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日 "+d.getHours()+":"+d.getMinutes()+" "+document.getElementById("f").value+"的测试报告。网络类型:"+netType.value);
    fsos.WriteLine("\t\t</td>\n\t</tr>");
    fsos.WriteLine("\t<tr>\n\t\t<td>资源地址</td>");
    for(var i=0;i<checktimes;i++)
    fsos.WriteLine("\t\t<td>第"+(i+1)+"轮</td>");
    fsos.WriteLine("\t\t<td>平均时延</td>\n\t</tr>");
    document.getElementById("testButton").disabled=true;
    testResource(0);
    }
    function testResource(u){
    window.currentRound = u;
    if(u>=resources.length) {
    document.title = "测试已完成。";
    fsos.WriteLine("</table></body></html>");
    fsos.Close();
    document.getElementById("testButton").disabled=false;
    if (confirm("测试完成,测试报告已经保存到“"+fileName+"”,您想现在把这个文件发送到 [email protected]吗?")){
    window.open(fileName).document.title="这是测试结果,请吧这个文件作为附件发送到[email protected]";
    window.open("mailto:[email protected]?subject="+document.getElementById("f").value+"的测试报告&body=test你好,附件中是我们的测试结果。&attach='"+fileName+"'");
    }
    close();
    return;
    }
    document.title = "共"+resources.length+"组,正在测试第"+(u+1)+"组。进度 "+Math.round(100*u/resources.length)+"%";
    succCount=failCount=timeCount=0;
    var url = resources[u];
    output.innerHTML += "<br/>正在测试"+url+"<br/>";
    fsos.WriteLine("\t\<tr>\n\t\t<td>"+url+"</td>");
    for(var i=0;i<checktimes;i++){
    window["xmlhttp"+i] = new ActiveXObject("microsoft.XMLHTTP");
    window["xmlhttp_startAt"+i]= new Date();
    window["xmlhttp"+i].onreadystatechange = new Function("f("+i+")");
    //window["xmlhttp"+i].open("get",url+(/\?/.test(url)?"&":"?")+"p="+Math.random(),true);
    window["xmlhttp"+i].open("get",url,true);
    window["xmlhttp"+i].setRequestHeader("If-Modified-Since","0");
    window["xmlhttp"+i].send("");
    }
    }
    function f(i){
    var xmlhttp = window["xmlhttp"+i];
    if (xmlhttp.readyState == 4)
    {
    var d = new Date();
    timeCount += (d-window["xmlhttp_startAt"+i]);
    var itemTimeCount = d-window["xmlhttp_startAt"+i];
    var responseLength = xmlhttp.responseText.length;
    if(responseLength>minLength){
    output.innerHTML += "第"+i+"次 成功获得"+responseLength+"字节数据,耗时"+itemTimeCount+"毫秒<br/>";
    fsos.WriteLine("\t\t<td><font color=green>"+itemTimeCount+"</font></td>");
    succCount++;
    }else{
    output.innerHTML += "第"+i+"次 <FONT SIZE=5 COLOR=red>失败</FONT> 耗时"+itemTimeCount+"毫秒。获得"+responseLength+"字节数据<br/>";
    fsos.WriteLine("\t\t<td><font color=red>"+itemTimeCount+"</font></td>");
    failCount++
    }
    output.scrollTop = output.scrollHeight;
    if(succCount+failCount==checktimes){
    var avg = Math.round(timeCount/checktimes*100)/100;
    output.innerHTML += "<BR>成功<font color=green>"+succCount+"</font>次,失败<font color=red>"+failCount+"</font>次,平均时延"+avg+"毫秒<hr>";
    fsos.WriteLine("\t\t<td>"+avg+"</td>");
    testResource(window.currentRound+1);
    }else{
    var s = Math.round((window.currentRound*checktimes+succCount+failCount)/(checktimes*resources.length)*100);
    document.title =  document.title.replace(/(\d+%)/,s+"%");
    }
    }
    }//-->
    </SCRIPT>
    测试前请先填写测试地点和测试人:
    <form name="fo">
    <input id="f" size=70 value="××省××市××区 ×××" onclick="select()">
    <BR><BR>网络类型:
    <input type="radio" name="nType" value="未知" id="nType1" onclick="netType.value=value" checked><label for="nType1">未知</label>
    <input type="radio" name="nType" value="电信" id="nType2" onclick="netType.value=value"><label for="nType2">电信</label>
    <input type="radio" name="nType" value="联通" id="nType3" onclick="netType.value=value"><label for="nType3">联通</label>
    <input type="radio" name="nType" value="网通" id="nType4" onclick="netType.value=value"><label for="nType4">网通</label>
    <input type="radio" name="nType" value="铁通" id="nType6" onclick="netType.value=value"><label for="nType6">铁通</label>
    <input type="radio" name="nType" value="有线电视" id="nType7" onclick="netType.value=value"><label for="nType7">有线电视</label><BR>
    <input type="radio" name="nType" value="小区局域网" id="nType8" onclick="netType.value=value"><label for="nType8">小区局域网(小区宽带)</label>
    <input type="radio" name="nType" value="教育网" id="nType9" onclick="netType.value=value"><label for="nType9">教育网</label>
    <input type="radio" name="nType" value="科技网" id="nType0" onclick="netType.value=value"><label for="nType0">科技网</label>
    <input type="radio" name="nType" value="" id="nType99" onclick="netType.value='';netType.focus();"><label for="nType99">其他(请注明)</label>
    </form>
    网络类型:<input id="netType" value="未知">
    <br/><br/><button onclick="testAsync()" id="testButton">测试</button>
    <BR><BR>
    <div id="output" style="border:1 solid gray;width:95%;height:400;overflow-y:scroll"></div>
    </BODY>
    </HTML>