Javascript 定期Ping并在出错时显示div

Javascript 定期Ping并在出错时显示div,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我目前有一个图像被ping,以便仅在本地内容可用时显示div 但我认为一个更好的实现是定期检查ping,间隔30秒,如果映像没有成功ping,则显示一个#offline div。这是更好的,因为它认为连接的状态可能会改变,而页面不会被重新加载 原文: function ImgLoad(myobj){ var randomNum = Date.now() || new Date().getTime(); var oImg=new Image; oImg.src="http://1

我目前有一个图像被ping,以便仅在本地内容可用时显示div

但我认为一个更好的实现是定期检查ping,间隔30秒,如果映像没有成功ping,则显示一个#offline div。这是更好的,因为它认为连接的状态可能会改变,而页面不会被重新加载

原文:

function ImgLoad(myobj){
   var randomNum = Date.now() || new Date().getTime();
   var oImg=new Image;
   oImg.src="http://192.168.8.1/images/ping2.jpg"+"?rand="+randomNum;
   oImg.onload=function(){$("#online").show();}

}
我想我已经设法让函数每30秒轮询一次,但是我无法在出错时显示div,而不是它是否成功ping

function checkping(){
function ImgLoad(myobj){
   var randomNum = Date.now() || new Date().getTime();
   var oImg=new Image;
   oImg.src="http://192.168.8.1/images/ping2.jpg"+"?rand="+randomNum;
   oImg.onload=function(){$("#online").show();}

}
}

setInterval(function(){
checkping()}, 30000)
也许可以考虑改为“智能”轮询,它以递增的间隔而不是固定的间隔检查服务器上的映像

此链接可能有助于:

我无法在出错时显示div

您已经在使用
.onload
,只需使用相应的
.onerror

oImg.onerror=function(){$("#error").show();}
可能重复的