Javascript:检查服务器是否在线?

前端之家收集整理的这篇文章主要介绍了Javascript:检查服务器是否在线?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
检查我的服务器是否通过 JavaScript在线的最快方式是什么?

我尝试了以下AJAX:

function isonline() {
    var uri = 'MYURL'
    var xhr = new XMLHttpRequest();
    xhr.open("GET",uri,false);
    xhr.send(null);
    if(xhr.status == 200) {
        //is online
        return xhr.responseText;
    }
    else {
        //is offline
        return null;
    }   
}

问题是,如果服务器脱机,它不会返回.如何设置一个超时时间,如果在一段时间后没有返回,我可以假设它是脱机的?

解决方法

XMLHttpRequest不工作​​跨域.相反,我会加载一个小的< img>你期望快速回来看看onload事件:
function checkServerStatus()
{
    setServerStatus("unknown");
    var img = document.body.appendChild(document.createElement("img"));
    img.onload = function()
    {
        setServerStatus("online");
    };
    img.onerror = function()
    {
        setServerStatus("offline");
    };
    img.src = "http://myserver.com/ping.gif";
}

编辑:清理我的答案. XMLHttpRequest解决方案可以在同一个域上进行,但是如果您只想测试一下服务器是否处于联机状态,则img加载解决方案是最简单的.没有必要混乱超时.如果你想让代码看起来像是同步的,这里有一些语法糖:

function ifServerOnline(ifOnline,ifOffline)
{
    var img = document.body.appendChild(document.createElement("img"));
    img.onload = function()
    {
        ifOnline && ifOnline.constructor == Function && ifOnline();
    };
    img.onerror = function()
    {
        ifOffline && ifOffline.constructor == Function && ifOffline();
    };
    img.src = "http://myserver.com/ping.gif";        
}

ifServerOnline(function()
{
    //  server online code here
},function ()
{
    //  server offline code here
});
原文链接:https://www.f2er.com/js/151428.html

猜你在找的JavaScript相关文章