美高梅开户-美高梅官方网站开户

您的位置:美高梅开户 > 美高梅官方网站开户 > javascript模拟的Ping效果代码

javascript模拟的Ping效果代码

发布时间:2019-09-17 11:07编辑:美高梅官方网站开户浏览(182)

    当然,在请求时无法统计HTTP头部的长度,所以当请求数据包长度在最大传输单元临界点时,额外的HTTP头可以导致IP分组,因此存在一定的误差.(2009/6/21)

    在线演示:

    核心代码:

    复制代码 代码如下:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ";
    <html xmlns=";
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>HTTP Ping</title>
    <style>
    html
    {
    height: 100%;
    overflow: hidden;
    }
    body
    {
    background: #000;
    color: #C0C0C0;
    font-weight: bold;
    font-size: 14px;
    font-family: Lucida Console;
    height: 100%;
    margin: 0 0 0 5px;
    }
    #divContent
    {
    height: 90%;
    overflow: auto;
    }
    #txtTimeout
    {
    width: 40px;
    }
    button
    {
    margin-left: 10px;
    }
    </style>
    </head>
    <body>
    <div id="divInput">
    <span>URL:</span>
    <input id="txtURL" type="text" />
    <span>Timeout:</span>
    <input id="txtTimeout" type="text" value="2000" />
    <input id="btnSwitch" type="button" value="Start" onclick="handleBtnClick()" />
    <hr/>
    </div>
    <div id="divContent"></div>
    <script>
    var intStartTime;
    var objIMG = new Image();
    objIMG.onload =
    objIMG.onerror =
    function()
    {
    /*
    * 有回应,取消超时计时
    */
    clearTimeout(intTimerID);
    if(!bolIsRunning || bolIsTimeout)
    return;
    var delay = new Date() - intStartTime;
    println("Reply from "
    strURL
    " time"
    ((delay<1)?("<1"):("=" delay))
    "ms");
    arrDelays.push(delay);
    /*
    * 每次请求间隔限制在1秒以上
    */
    setTimeout(ping, delay<1000?(1000-delay):1000);
    }
    function ping()
    {
    /*
    * 发送请求
    */
    intStartTime = new Date();
    intSent ;
    objIMG.src = strURL "/" intStartTime;
    bolIsTimeout = false;
    /*
    * 超时计时
    */
    intTimerID = setTimeout(timeout, intTimeout);
    }
    function timeout()
    {
    if(!bolIsRunning)
    return;
    bolIsTimeout = true;
    objIMG.src = "X:\";
    println("Request timed out.");
    ping();
    }
    </script>
    <script>
    var $ = function(v){return document.getElementById(v)};
    var arrDelays = [];
    var intSent;
    var bolIsRunning = false;
    var bolIsTimeout;
    var strURL;
    var intTimeout;
    var intTimerID;
    var objBtn = $("btnSwitch");
    var objContent = $("divContent");
    var objTxtURL = $("txtURL");
    objTxtURL.value = window.location.host;
    function handleBtnClick()
    {
    if(bolIsRunning)
    {
    /*
    * 停止
    */
    var intRecv = arrDelays.length;
    var intLost = intSent-intRecv;
    var sum = 0;
    for(var i=0; i<intRecv; i )
    sum = arrDelays[i];
    objBtn.value = "Start";
    bolIsRunning = false;
    /*
    * 统计结果
    */
    println(" ");
    println("Ping statistics for " strURL ":");
    println("  Packets: Sent = "
    intSent
    ", Received = "
    intRecv
    ", Lost = "
    intLost
    " ("
    Math.floor(intLost / intSent * 100)
    "% loss),");
    if(intRecv == 0)
    return;
    println("Approximate round trip times in milli-seconds:");
    println("  Minimum = "
    Math.min.apply(this, arrDelays)
    "ms, Maximum = "
    Math.max.apply(this, arrDelays)
    "ms, Average = "
    Math.floor(sum/intRecv)
    "ms");
    }
    else
    {
    /*
    * 开始
    */
    strURL = objTxtURL.value;
    if(strURL.length == 0)
    return;
    if(strURL.substring(0,7).toLowerCase() != "http://")
    strURL = "http://" strURL;
    intTimeout = parseInt($("txtTimeout").value, 10);
    if(isNaN(intTimeout))
    intTimeout = 2000;
    if(intTimeout < 1000)
    intTimeout = 1000;
    objBtn.value = "Stop ";
    bolIsRunning = true;
    arrDelays = [];
    intSent = 0;
    cls();
    println("Pinging " strURL ":");
    println(" ");
    ping();
    }
    }
    function println(str)
    {
    var objDIV = document.createElement("div");
    美高梅官方网站开户 ,if(objDIV.innerText != null)
    objDIV.innerText = str;
    else
    objDIV.textContent = str;
    objContent.appendChild(objDIV);
    objContent.scrollTop = objContent.scrollHeight;
    }
    function cls()
    {
    objContent.innerHTML = "";
    }
    </script>
    </body>
    </html>

    您可能感兴趣的文章:

    • JavaScript 模拟用户单击事件
    • Javascript 模拟点击事件(点击链接与html点击) 兼容IE/Firefox
    • javascript模拟滚动条实现代码
    • Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
    • javascript模拟select,jselect的方法实现
    • javascript jscroll模拟html元素滚动条
    • javascript 模拟坦克大战游戏(html5版)附源码下载
    • JavaScript实现Flash炫光波动特效

    本文由美高梅开户发布于美高梅官方网站开户,转载请注明出处:javascript模拟的Ping效果代码

    关键词: 美高梅开户

上一篇:虚构到品质难点

下一篇:没有了