定期测试互联网连接

Dim*_*zov 2 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);
Run Code Online (Sandbox Code Playgroud)

然而,这会导致警报仅出现一次。我应该对此片段进行哪些更改才能使其执行我想要的操作?

Joe*_*nos 5

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

var tickingClock = setInterval(function() { testConnection(myURL); }, 3000);
Run Code Online (Sandbox Code Playgroud)

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