我正在使用纯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
}
}
这段代码似乎对我有用,但我没有看到任何文档,无处可去!你认为这是一个可靠的解决方案吗?
答案 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>