如何检测客户端访问javascript页面时服务器是否关闭?
带有永远保持事件 header 的请求可以做到这一点,但问题是即使用户离开页面也会触发。
最佳答案
也许这是一种有点幼稚的方法,但是当 ajax 调用失败时,您可以计算响应 header 的数量。例如,使用 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
,则不存在响应 header 。
关于javascript - 如何检测服务器是否关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14852989/