我想每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)
然而,这会导致警报仅出现一次。我应该对此片段进行哪些更改才能使其执行我想要的操作?
您正在调用该函数,而不是在语句中放置对该函数的引用setInterval。正确的方法是:
var tickingClock = setInterval(function() { testConnection(myURL); }, 3000);
Run Code Online (Sandbox Code Playgroud)
setInterval接受一个函数(或一个字符串,但尽量避免使用字符串)。您的代码触发该testConnection方法,然后将返回值作为参数给出setInterval。但该返回值未定义,因此与setInterval无关。
| 归档时间: |
|
| 查看次数: |
1059 次 |
| 最近记录: |