У меня есть следующий фрагмент кода с моей веб-страницы, который проверяет подключение к Интернету.Перезагрузка веб-страницы только при наличии Интернета
Когда Интернет доступен, он должен перезагрузить страницу через 10 секунд. В противном случае он бесконечно ждет подключения.
function checkJSNetConnection(){
var xhr = new XMLHttpRequest();
var file = "https://dl.dropboxusercontent.com/s/9d7ri25ku7xlj9u/WALL-E%20%281%29.jpg?dl=0";
var r = Math.round(Math.random() * 10000);
xhr.open('HEAD', file + "?subins=" + r, false);
try {
xhr.send();
if (xhr.status >= 200 && xhr.status < 304) {
return true;
} else {
return false;
}
} catch (e) {
return false;
}
}
function timedRefresh(timeoutPeriod) {
if(checkJSNetConnection()==false){
alert("Internet Connection does not Exist");
} else {
setTimeout("location.reload(true);",timeoutPeriod);
}
}
Функция вызывается из:
<body onload="JavaScript:timedRefresh(10000);">
Проблема в том, что, хотя он успешно перезагружает страницу, когда Интернет доступен, он не отображается предупреждающее сообщение для без подключения, показывая вместо msgstr "невозможно загрузить страницу".
В принципе, он в настоящее время подтверждает подключение к Интернету в начале обратного отсчета, а не конец, как следует. – philtune
проблема не в тесте подключения, проблема в том, что в логике есть недостаток, который позволяет перезагружать страницу, даже если соединение отсутствует. он должен перезагрузить сразу, а не устанавливать тайм-аут на обновление – Banana
Спасибо, ребята за хорошее решение и объяснение –