在过去的几周里,我一直在研究一个检测是否存在Internet连接的脚本。从我读过的所有内容来看,最好的方法是使用" navigator.onLine"。到目前为止,我已经设法了,但现在我被卡住了。下面的脚本将检查" onLine / offLine"状态。
我需要脚本做的是: 检查是否在线,如果onLine执行数据刷新,如果offLine什么都不做,直到状态为" onLine"。 目前,脚本会检查onLine状态但不会运行标记为" B"的行。
如果我手动断开互联网连接,状态将变为" offLine"没有刷新,这很好。 重新连接" onLine"标有" A"是真的,如果标有" B"是假的我需要标记为" C"直到标记为" B"是的。
知道" addEventListener"只有在" onLine / offLine发生变化时才会运行,我怎样才能在" addEventListene"在没有事件变化的情况下运行。
任何人都可以看到我出错的地方。非常感谢你的时间。
window.addEventListener('load', function() {
var RefreshRate = 500;
var status = document.getElementById("status");
var log = document.getElementById("log");
var pageno = 1;
var totalPages = 9;
var pageStrNo = 1;
function updateOnlineStatus(event) {
var condition = navigator.onLine ? "online" : "offline";
status.className = condition;
status.innerHTML = condition.toUpperCase();
log.insertAdjacentHTML("beforeend", "Event: " + event.type + "; Status: " + condition);
console.log(condition);
if (condition == "online") { // A
if(pageno == totalPages) { //B
window.setTimeout(function(){
window.location.href = "online.php";
}, RefreshRate);
console.log(RefreshRate);
console.log("Refresh On line where pageno == totalPages");
}
else
{
console.log("Refresh On line 2");
function NavRefresh() { //C
var URL = 'online.php?pageNum_fids='+pageStrNo+'&totalPages='+totalPages+'';
console.log(URL);
window.location.href = URL;
}
console.log(NavRefresh);
console.log("Refresh On line where pageno != totalPages");
}
setTimeout(NavRefresh, 2000);
}
}
else
{
console.log("Refresh Off line");
}
}
window.addEventListener('online', updateOnlineStatus);
window.addEventListener('offline', updateOnlineStatus);
});