我有一个网页,我希望它每2分钟刷新一次,使用以下代码:
location.reload();问题是,我假设用户已连接;但如果发生了s/他没有联机连接的情况,则页将失败,并给出默认浏览器(没有连接错误页);除非用户手动刷新页面,否则页面将永远不会刷新。
我是否可以使用ping机制来决定天气是否刷新?
发布于 2014-03-25 10:38:52
您可以使用navigator.onLine检测网络连接。
setInterval(function() {
    if (navigator.onLine) {
        location.reload();
    }
}, 120000); /* 120000 ~> 2 minutes */否则,只能在响应返回200/304状态时才使用对相同域资源的200/304 ajax请求,并刷新页面。
setInterval(function() {
    $.ajax({ 
        url  : "/favicon.ico", /* or other resource */
        type : "HEAD"
    })
    .done(function() {
        location.reload();
    });
}, 120000); /* 120000 ~> 2 minutes */发布于 2014-03-25 10:41:04
一种可能是将查询发送到服务器或非常可靠的服务器,并检查是否收到答复。
navigator.onLine的问题在于它告诉浏览器状态,但是浏览器可能在没有网络的情况下具有在线状态。
发布于 2014-03-25 10:41:43
您可以使用布尔值:
if (navigator.onLine) {
    //Actions
}https://stackoverflow.com/questions/22631869
复制相似问题