检查我的服务器是否响应[Javascript]

时间:2015-10-29 08:10:03

标签: javascript ajax

我想检查URL上的服务器是否正在响应,然后设置我的<的文本。 p>标记到服务器在线'或者'服务器处于脱机状态'。

我可以在我的服务器上创建一个返回ex的页面。 '成功'作为一个纯文本。如果我的javascript可以捕获此消息,它应该写“服务器在线”,否则它应该尝试连接最多5秒或更长时间,然后写一条消息'服务器处于脱机状态'。

我尝试了this answer中的代码,但是在1500毫秒后它就会脱机。

value[1]=1; 
value[2]=32; 
value[3]=76 
...

1 个答案:

答案 0 :(得分:1)

您可以尝试此解决方案,这里我使用图像加载事件来跟踪连接状态。



(function(win) {
  var _ = {};

  _.win = win;

  _.doc = _.win.document;

  _.status = _.doc.createElement('div');
  _.status.className = "hide";
  _.status.innerHTML = "You are now offline !";

  _.doc.getElementsByTagName('body')[0].appendChild(_.status);

  _.img = new Image();

  _.loop = function() {
    _.win.setTimeout(_.nextSrc, 5000);
  };

  _.onLine = function() {
    _.status.className = "hide"; // hide
    _.loop();
  };

  _.offLine = function() {
    _.status.className = "net-err"; // show
    _.loop();
  };

  _.img.onload = _.onLine;
  _.img.onerror = _.offLine;

  _.nextSrc = function() {
    _.img.src = "https://raw.githubusercontent.com/arvind-web-corner/offline-status/gh-pages/blank.png?" + _.win.Math.random();
  };

  _.loop();
})(window);

* {
  font-family: Calibri, Arial !important;
}
.net-err {
  width: 100%;
  display: block;
  z-index: 999;
  padding: 15px 10px;
  background: rgb(255, 9, 9);
  color: #fff;
  font-weight: bold !important;
  text-align: center;
  position: fixed;
  top: -1px;
  left: -1px;
  border: 1px solid #ddd;
  font-size: 30px;
  opacity: 0.9;
  filter: alpha(opacity=90);
  /* IE */
}
.hide {
  display: none;
}

<!DOCTYPE html>
<html>

<head>
  <title>Status</title>
</head>

<body>
  <h1>This page will be tracking your internet connection</h1>
  <h2>You will be notified when you loose connection</h2>
  <h3>e.g. Go to File > Work Offline</h3>
</body>

</html>
&#13;
&#13;
&#13;

scriptdemo