通过JavaScript检查网站是否启动的最佳方式是什么?

前端之家收集整理的这篇文章主要介绍了通过JavaScript检查网站是否启动的最佳方式是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用 JavaScript检查网站是否运行或关闭是最好的方式?

解决方法

基于Spliffster的评论

代码将基于浏览器超时尝试达到特定的IP,直到其异步可用.您可能需要添加代码以防止它尝试很长时间.

<head>
<script>
function check_available(ip){
    var el=document.getElementById("check_pic");
    el.src="https://"+ip+"/images/powered_by.gif?now="+Math.random();    
}

function check_success(url){
  alert("redirect now :) - url:"+url);
}
</script>
</head>

<body>
    <img style="visibility:hidden" id='check_pic' src="/images/powered_by.gif" onabort="alert('interrupted')" onload="check_success('http://10.0.0.1/redirect/me/here')" onerror="check_available('10.17.71.150')"/>

</body>

[编辑]

边注:
xmlhttprequest将不起作用,因为浏览器将抛出一个十进制异常. This mozilla.dev链接提供更多背景信息,并显示使用访问控制标头响应语句的示例.请注意,访问控制头字段是serverside(正在探测的站点),您可能无法控制该字段(默认情况下未启用).

计时问题
在使用xmlhttprequests进行交叉起点调用时,时间上有差异.由于浏览器必须等待响应来评估可能的访问控制头字段,所以对不存在的网站的调用将运行到浏览器请求超时.对现有网站的呼叫不会超出此超时,并且错误出现在前面的交叉起点异常(仅在浏览器中可见,JavaScript永远不会覆盖此信息!).因此,也可以测量从xmlhttprequest.send()到第一个响应(在回调中)的时间.早期的回调调用将表明该网站从浏览器的角度来看,但至少使用xmlhttprequest,您将无法评估返回码(因为这是被阻止的跨平台策略).

self.xmlHttpReq.open('POST',strURL,true);
self.xmlHttpReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function() {
    //stopwatch.stop and calc timediff. timediff < default browser request timeout indicates website is up from this browsers point of view. No clues on request status or anything else,just availability
}
self.xmlHttpReq.send(null);
//stopwatch.start
原文链接:https://www.f2er.com/js/151318.html

猜你在找的JavaScript相关文章