用JS实现ping的功能(JS ping url)

凉白开 编程语言251,75110字数 1400阅读4分40秒阅读模式

这是一个jquery的ping插件,实现了js来ping url的功能。当然这个和系统上的ping不是一回事,一个是ping使用icmp协议,一个是使用http协议,获取响应时间罢了。好了,上代码

$.ping = function(option) 
{
    var ping, requestTime, responseTime ;
    var getUrl = function(url){    //保证url带http://
        var strReg="^((https|http)?://){1}"
        var re=new RegExp(strReg); 
        return re.test(url)?url:"http://"+url;
    }
    $.ajax({
        url: getUrl(option.url)+'/'+ (new Date()).getTime() + '.html',  //设置一个空的ajax请求
        type: 'GET',
        dataType: 'html',
        timeout: 10000,
        beforeSend : function() 
        {
            if(option.beforePing) option.beforePing();
            requestTime = new Date().getTime();
        },
        complete : function() 
        {
            responseTime = new Date().getTime();
            ping = Math.abs(requestTime - responseTime);
            if(option.afterPing) option.afterPing(ping);
        }
    });

    if(option.interval && option.interval > 0)
    {
        var interval = option.interval * 1000;
        setTimeout(function(){$.ping(option)}, interval);
//        option.interval = 0;        // 阻止多重循环
//        setInterval(function(){$.ping(option)}, interval);
    }
};

来一个实例:文章源自运维生存时间-https://www.ttlsa.com/dev/use-js-ping-url-ping-ip/

<div id="msg"></div>
<script language="javascript" src="jquery.js"></script>
<script language="javascript" src="ping.js"></script>
<script>
$.ping({
url : 'http://www.example.com', 
beforePing : function(){$('#msg').html('')},
afterPing : function(ping){$('#msg').html(ping)}, 
interval : 1
});
</script>

 文章源自运维生存时间-https://www.ttlsa.com/dev/use-js-ping-url-ping-ip/ 文章源自运维生存时间-https://www.ttlsa.com/dev/use-js-ping-url-ping-ip/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
凉白开
  • 本文由 发表于 02/11/2013 01:38:07
  • 转载请务必保留本文链接:https://www.ttlsa.com/dev/use-js-ping-url-ping-ip/
  • jquery
  • js
  • ping
评论  2  访客  2
    • 请输入您的QQ号
      请输入您的QQ号 0

      不错很有用,可以用这个做一个概念

      • fdsf
        fdsf 9

        福建省快乐fsfsfs

      评论已关闭!