`
pxchen
  • 浏览: 85227 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js网络连接速度测试

    博客分类:
  • js
阅读更多
<!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+"”,您想现在把这个文件发送到   test@test.com吗?")){ 
  window.open(fileName).document.title="这是测试结果,请吧这个文件作为附件发送到test@test.com"; 
  window.open("mailto:test@test.com?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>
分享到:
评论

相关推荐

    Node.js-speed-test-测试你的网络连接速度和ping命令

    speed-test - 测试你的网络连接速度和ping命令

    JS-Speed-Test:使用javascript测试用户的粗略连接速度的基本方法

    JS速度测试使用javascript测试用户的粗略连接速度的基本方法。 返回的值以Kbps为单位,但是它不是很准确,因为它没有考虑网络延迟,所以它是一个粗略的主意。 这是一个非常基本的工具,因为它非常轻巧(最小2Kb)。 ...

    nodejs封装好的mysql数据库模块,带mysql连接池以及百万测试数据

    1. **Node.js与MySQL**:Node.js是基于Chrome V8引擎的JavaScript运行环境,以其异步非阻塞I/O模型而闻名,非常适合处理网络请求和数据库操作。MySQL是流行的开源SQL数据库,与Node.js结合可以创建高性能的Web应用...

    网络测评最终版 软件 JavaScript

    5. **安全评估**:JavaScript可以用于检测网络连接的安全性,例如HTTPS证书的有效性。 6. **兼容性测试**:不同浏览器对JavaScript的支持程度不同,软件可能包含针对各种浏览器的兼容性测试。 7. **用户交互**:...

    虚拟机网络连接_HTTP_

    虚拟机网络连接主要涉及以下几种模式: 1. **桥接模式(Bridge Mode)**:虚拟机的网络接口直接桥接到物理主机的网卡上,虚拟机与物理网络设备在同一网段,可以获取到真实的IP地址,能直接与其他设备通信。 2. **...

    docker-speedtest-analyser:带有网络界面的自动化docker speedtest分析工具,可随时监控您的互联网速度连接。 在您的NAS上进行家庭设置(Synology,已通过QNAP测试),并且容器每小时进行一次速度测试。 速度测试结果在一天中以折线图的形式显示在Web界面中

    之后,您可以访问Web界面以查看有关Internet连接速度的每小时-可过滤的报告。 截屏 Docker Hub映像 您可以在以下位置获取可公开使用的映像: 。 事实 默认情况下,speedtest每小时运行一次 nginx已准备就绪,但尚未...

    Node.js-网络条件模拟(2G3G4GWifi等)

    1. **Node.js基础知识**:Node.js基于Chrome V8引擎,它允许开发者使用JavaScript编写服务器端程序,提供了异步I/O、事件驱动的模型,非常适合处理大量并发连接,这使得它在网络条件模拟方面具有潜力。 2. **模拟...

    tcpip测试工具

    标题中的"tcpip测试工具"是指一类专门用于检查、诊断和验证TCP/IP网络连接和协议栈功能的软件。这些工具可以帮助网络管理员、开发人员或普通用户检测网络问题,优化网络性能,或者调试应用程序的网络部分。 描述中...

    服务器端JavaScript之Node.js

    Node.js的设计使得它能够处理大量并发连接,尤其适合实时、数据密集型的网络应用,如实时聊天、协作工具、流媒体服务等。 **V8引擎** V8引擎是Node.js的心脏,它是Google为Chrome浏览器开发的高性能JavaScript引擎...

    测试浏览器运行速度

    当遇到"ASP.NET开发的网页在浏览器中运行速度特别慢"的问题时,这可能是由多种因素引起的,包括但不限于网络延迟、服务器响应时间、JavaScript执行效率、CSS和HTML的加载顺序等。为了找出问题的症结所在,我们可以...

    测试上网速度的ASP程序

    标题中的“测试上网速度的ASP程序”指的是一个基于Active Server Pages (ASP)技术开发的应用,其主要功能是测量用户互联网连接的速度。ASP是微软在Web开发领域推出的一种服务器端脚本语言,它允许开发者创建动态网页...

    Javascript实现网络监测的方法

    本文所提及的Javascript网络监测方法主要通过浏览器提供的接口来实现对网络状态的检测和网络速度的估算。 #### 获取网络连接状态 Javascript通过`navigator.onLine`属性来检测设备是否连接到互联网。该属性返回一个...

    ceshi.zip_网速测试

    网速测试】提供的是一套轻量级、易于部署的网络速度测试解决方案,涵盖了基本的测速和定位功能,对于网站管理员、网络运维人员以及普通用户来说,都是一个实用的工具,可以帮助他们了解和优化网络连接性能。

    jsbin 离线版本

    离线版本的JSBin使得在没有网络连接的情况下,开发者依然可以使用这一功能丰富的工具进行代码实验。 **离线版的构成与工作原理** 离线版本的JSBin通常包含以下关键组件: 1. **入口文件**:`index.html`是离线版...

    测试您的网速,多地查询您的IP地址,同时具备网络延迟实时检测,流量杀手,流量消耗器,流量消失器.zip

    在IT行业中,网络速度测试、IP地址查询以及网络延迟检测是网络管理与优化的重要环节。这些功能对于确保网络性能和用户上网体验具有至关重要的作用。本文将深入探讨这些概念及其在实际应用中的重要性。 首先,"测试...

    js1082驱动程序

    JS1082驱动程序是一款专为USB网卡设计的驱动软件,主要用于确保JS1082型号的USB网络适配器能够与计算机系统无缝对接,实现稳定的网络连接。USB网卡作为一种便捷的网络解决方案,允许用户通过USB接口在没有内置网络...

    example-pretty.zip_Gauges_Pretty_climbys1_speedtest

    4. **SpeedTest**: SpeedTest通常指的是网络速度测试,用来测量网络连接的上传速度、下载速度以及延迟。这个项目可能包含了一个实现Web浏览器内速度测试功能的脚本或应用,让用户能够方便地检查自己的网络状况。 5....

    软件测试ppt资料绝对经典

    连接速度测试评估不同网络环境下的响应速度,以优化用户体验。负载测试通过模拟多用户并发访问,检测系统在高负载下的稳定性。压力测试则通过极限测试,观察系统在极端条件下的行为,以评估其耐受和恢复能力。 测试...

    测试用的vapk网络下载无偿共享

    5. 应用的网络功能:可能涉及到登录验证、数据同步等方面,需要测试网络连接的稳定性和速度。 这些知识点对于Android开发者和测试工程师来说非常重要,它们直接关系到应用的质量和用户体验。通过详细测试这些方面,...

Global site tag (gtag.js) - Google Analytics