检测ajax请求没有连接状态和状态

时间:2015-04-22 16:41:07

标签: javascript ajax html5

我正在使用纯JavaScript(没有jQuery而没有其他人......)而且我正在编写一些代码来发出AJAX请求。我注意到当互联网连接失败时,在chrome,firefox上,即那些是xmlhttp.onreadystatechange:

中的值
xmlhttp.readyState=4
xmlhttp.status=0

由于我想处理网络连接问题,这是一个很好的方法吗?

xmlhttp.onreadystatechange=function(){

    if(xmlhttp.readyState==4 && xmlhttp.status==0){//No internet connection

        //code to handle network error
    }
}

这段代码似乎对我有用,但我没有看到任何文档,无处可去!你认为这是一个可靠的解决方案吗?

1 个答案:

答案 0 :(得分:0)

您可以使用online/offline events

window.addEventListener('load', function() {
  var status = document.getElementById("status");

  function updateOnlineStatus(event) {
    var condition = navigator.onLine ? "online" : "offline";

    status.className = condition;
    status.innerHTML = condition.toUpperCase();

    log.insertAdjacentHTML("beforeend", "Event: " + event.type + "; Status: " + condition);
  }

  window.addEventListener('online',  updateOnlineStatus);
  window.addEventListener('offline', updateOnlineStatus);
});
#status {
  position : fixed;
  width: 100%;
  font : bold 1em sans-serif;
  color: #FFF:
  padding : 0.5em
}

#log {
  padding: 2.5em 0.5em 0.5em;
  font: 1em sans-serif;
}

.online {
  background: green;
}

.offline {
  background: red;
}
<div id="status"></div>
<div id="log"></div>
<p>This is a test</p>