如果连接如何使用javascript刷新页面?

sta*_*low 2 javascript jquery page-refresh

我有一个网页,我希望它每2分钟刷新一次,使用以下代码:

location.reload();
Run Code Online (Sandbox Code Playgroud)

问题是我假设用户已连接; 但如果发生了他/她没有在线连接,页面将失败并给出默认浏览器(没有连接错误页面); 并且除了用户手动之外,页面永远不会刷新

我可以包括ping机制来决定是否刷新天气?

fca*_*ran 7

您可以使用它navigator.onLine来检测网络连接

setInterval(function() {
    if (navigator.onLine) {
        location.reload();
    }
}, 120000); /* 120000 ~> 2 minutes */
Run Code Online (Sandbox Code Playgroud)

否则,您可以使用HEADajax请求到同一域资源,并仅在响应返回200/304状态时刷新页面,例如

setInterval(function() {

    $.ajax({ 
        url  : "/favicon.ico", /* or other resource */
        type : "HEAD"
    })
    .done(function() {
        location.reload();
    });
}, 120000); /* 120000 ~> 2 minutes */
Run Code Online (Sandbox Code Playgroud)