对可能启动或可能关闭的网站执行AJAX请求

时间:2009-08-06 15:10:37

标签: ajax

我正在编写一个小应用程序,用于监控几个网站的状态,主要是报告哪些网站在线以及哪些网站处于离线状态。

我目前将此代码作为 onreadystatechange 函数:

if(xmlhttp.readyState == 4) {
    if (xmlhttp.status == 200) {
        element(id).innerHTML = "Online";
    }
    else {
        element(id).innerHTML = "Offline";
    }
}

当网站在线时它正常运行,但如果我在离线网站上发出AJAX请求,它就永远不会到达'else'块。我认为如果网站关闭,请求永远不会到达readyState 4 ?

有关如何将AJAX请求捕获到离线网站的任何建议吗?

4 个答案:

答案 0 :(得分:1)

您要做的是在特定时间后中止请求,即超时。这篇文章应该有所帮助:

Async Requests over an Unreliable Network

答案 1 :(得分:1)

IE8的XHR对象支持ontimeout事件(http://msdn.microsoft.com/en-us/library/cc197061(VS.85).aspx

ReadyState = 4表示“已加载”,如果内容未加载,则不会发生。

答案 2 :(得分:0)

我刚刚使用Fiddler进行了测试,并返回状态502,正文512

答案 3 :(得分:-1)

您可以检查标头是否有404错误。