我想检查某个网站是否每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);
但是,这会导致警报只出现一次。我应该在这个片段中改变什么才能让它按照我的意愿去做?
答案 0 :(得分:4)
您正在调用该函数,而不是在setInterval
语句中引用该函数。正确的方法是:
var tickingClock = setInterval(function() { testConnection(myURL); }, 3000);
setInterval
接受函数(或字符串,但尽量避免使用字符串)。您的代码触发testConnection
方法,然后将返回值作为setInterval
的参数。但是该返回值未定义,因此setInterval
无关。