2017-01-10 7 views
-1

ウェブサイトがオンラインかオフラインかをテストするにはどうすればよいですか?Javascriptウェブサイトがライブかどうかをテストする方法

次のコードを使用し、常にfalseを返します。たとえ私が有効なIPを追加しても。あなたは、コールバック内の値(オンロード、ONERROR)を返し、あなたがここでそうであるように、それらが同期可能なことを期待することはできません

var ServerIP = window.localStorage.getItem('serverip');  

if (ping(ServerIP)) 
{ 
// Do Stuff 
} 

function ping(ip) 
{ 
    var img = new Image(1,1); 
    img.onload = function() 
    { 
     return true; 
    }; 
    img.onerror = function() 
    { 
     return false; 
    }; 
    img.src = "http://" + ip + "/pixel.png"; 
} 
+0

'ウェブサイトがアップしているかどうかを確認するための最良の方法は何[' onerror'と 'onload'は、彼らがの –

+0

可能な重複して非同期であるとして、あなたは' 'ピング(IP)から得るものではありませんでreturn'またはJavaScript経由ではありません](http://stackoverflow.com/questions/4814752/whats-the-best-way-t o-check-if-a-website-is-up-or-not-javascriptを使用して) –

答えて

2

(すなわちピングが実行された場合):

ほとんどの初歩的な方法は、コールバックを使用することです:

ping(ServerIP, function(pingOk) { 
    console.log(pingOk); 
    if (pingOk) { 
    // Do Stuff (note: this happens async) 
    } 
}); 

function ping(ip, cb) 
{ 
    var img = new Image(1,1); 
    img.onload = function() 
    { 
     cb(true); 
    }; 
    img.onerror = function() 
    { 
     cb(false); 
    }; 
    img.src = "http://" + ip + "/pixel.png"; 
} 
関連する問題