首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果连接,如何使用javascript刷新页面?

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

Stack Overflow用户
提问于 2014-03-25 10:34:43
回答 4查看 5K关注 0票数 2

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

代码语言:javascript
运行
复制
location.reload();

问题是,我假设用户已连接;但如果发生了s/他没有联机连接的情况,则页将失败,并给出默认浏览器(没有连接错误页);除非用户手动刷新页面,否则页面将永远不会刷新。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-25 10:38:52

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

代码语言:javascript
运行
复制
setInterval(function() {
    if (navigator.onLine) {
        location.reload();
    }
}, 120000); /* 120000 ~> 2 minutes */

否则,只能在响应返回200/304状态时才使用对相同域资源的200/304 ajax请求,并刷新页面。

代码语言:javascript
运行
复制
setInterval(function() {

    $.ajax({ 
        url  : "/favicon.ico", /* or other resource */
        type : "HEAD"
    })
    .done(function() {
        location.reload();
    });
}, 120000); /* 120000 ~> 2 minutes */
票数 8
EN

Stack Overflow用户

发布于 2014-03-25 10:41:04

一种可能是将查询发送到服务器或非常可靠的服务器,并检查是否收到答复。

navigator.onLine的问题在于它告诉浏览器状态,但是浏览器可能在没有网络的情况下具有在线状态。

请参阅:Detect Internet Connection as in Gmail Javascript

票数 1
EN

Stack Overflow用户

发布于 2014-03-25 10:41:43

您可以使用布尔值:

代码语言:javascript
运行
复制
if (navigator.onLine) {
    //Actions
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22631869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档