01.
$.ping =
function
(option)
02.
{
03.
var
ping, requestTime, responseTime ;
04.
var
getUrl =
function
(url){
//保证url带http://
05.
var
strReg=
"^((https|http)?://){1}"
06.
var
re=
new
RegExp(strReg);
07.
return
re.test(url)?url:
"http:// "
+url;
08.
}
09.
$.ajax({
10.
url: getUrl(option.url)+
'/'
+ (
new
Date()).getTime() +
'.html'
,
//设置一个空的ajax请求
11.
type:
'GET'
,
12.
dataType:
'html'
,
13.
timeout: 10000,
14.
beforeSend :
function
()
15.
{
16.
if
(option.beforePing) option.beforePing();
17.
requestTime =
new
Date().getTime();
18.
},
19.
complete :
function
()
20.
{
21.
responseTime =
new
Date().getTime();
22.
ping = Math.abs(requestTime - responseTime);
23.
if
(option.afterPing) option.afterPing(ping);
24.
}
25.
});
26.
27.
if
(option.interval && option.interval > 0)
28.
{
29.
var
interval = option.interval * 1000;
30.
setTimeout(
function
(){$.ping(option)}, interval);
31.
// option.interval = 0; // 阻止多重循环
32.
// setInterval(function(){$.ping(option)}, interval);
33.
}
34.
};
应用举例:
<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>