您的位置:首页 > Web前端 > JavaScript

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

2014-03-23 00:00 393 查看
这是一个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);
}
};
来一个实例:
<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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jquery js ping