使用navigator.onLine - navigator.offLine

时间:2018-06-05 14:22:46

标签: javascript

在过去的几周里,我一直在研究一个检测是否存在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);
});

0 个答案:

没有答案