tiduswj

JS使用http协议实现ping功能

目前项目需要用到,实现原理很简单,提交一个ajax请求,并分别记录发送时间和收到回复时间即可。

代码转自:http://www.ttlsa.com/dev/use-js-ping-url-ping-ip/

$.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.baidu.com\', beforePing : function(){$(\'#msg\').html(\'\')}, afterPing : function(ping){$(\'#msg\').html(ping)}, interval : 1 }); </script>

 

分类:

技术点:

相关文章:

  • 2021-06-30
  • 2021-04-20
  • 2021-11-14
  • 2021-12-28
  • 2021-07-09
  • 2021-07-25
  • 2021-11-30
  • 2021-08-22
猜你喜欢
  • 2021-12-28
  • 2021-11-18
  • 2021-09-17
  • 2021-12-28
  • 2021-03-31
  • 2021-05-27
  • 2021-10-19
相关资源
相似解决方案