如何检测服务器是否关机?

时间:2013-02-13 11:55:14

标签: javascript shutdown

如何在客户端使用javascript访问页面时检测服务器是否关闭?

具有永久保持活动标头的请求可以执行此操作,但问题是即使用户离开页面也会触发。

1 个答案:

答案 0 :(得分:2)

也许这是一种天真的方法,但是当ajax调用失败时,你可以计算响应头的数量。例如,使用jQuery,您可以这样做:

$.ajax( {
    'url': urlToTheServer,
    'success': function()
    {
        // server is up
    },
    'error': function( $xhr )
    {
        if( $xhr.getAllResponseHeaders().length < 1 )
        {
            // fair probability server is down
        }
    }
} );

我在开发框中测试的方式是在setTimeout()调用中包含上述内容(例如,10秒超时)。加载页面。关机服务器。然后等待超时到期并执行ajax请求。

PS。:$xhr.getAllResponseHeaders()返回换行符分隔的标题字符串,而不是标题的数组或对象。我一开始忽略了这一点,然而,这并没有改变剧本的结果。如果字符串长度$xhr.getAllResponseHeaders()小于1,则不会出现响应标头。