定期测试Internet连接

时间:2013-06-27 16:40:43

标签: javascript

我想检查某个网站是否每3秒钟在线一次。

如果连接存在并且站点在线,我想每3秒显示一次“已连接”警报,但如果没有连接或站点不在线,我想显示“未连接”警报,也是每3个秒。

我试过了:

var myURL = "http://www.example.com/";

function testConnection(url) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onload = function() { alert("Connected!");}   
    xmlhttp.onerror = function() { alert("Not Connected"); }
    xmlhttp.open("GET",url,true);
    xmlhttp.send();
}

var tickingClock = setInterval(testConnection(myURL), 3000);

但是,这会导致警报只出现一次。我应该在这个片段中改变什么才能让它按照我的意愿去做?

1 个答案:

答案 0 :(得分:4)

您正在调用该函数,而不是在setInterval语句中引用该函数。正确的方法是:

var tickingClock = setInterval(function() { testConnection(myURL); }, 3000);

setInterval接受函数(或字符串,但尽量避免使用字符串)。您的代码触发testConnection方法,然后将返回值作为setInterval的参数。但是该返回值未定义,因此setInterval无关。