发布
社区首页 >问答首页 >健壮的自动刷新网页

健壮的自动刷新网页
EN

Stack Overflow用户
提问于 2010-09-17 03:16:30
回答 3查看 7K关注 0票数 3

我有很多网页需要每分钟自动刷新一次。使用META刷新或某个javascript很容易完成。(是的,整个页面都需要刷新--很多内容都在改变)。

但是,它需要尽可能地健壮。如果web服务器暂时停机或出现网络问题,它将无法刷新,然后将出现404错误,等等,并永久停留在错误页面上。

我能想到的唯一选择是将整个页面放在一个IFRAME中,并在父页面上有一些脚本刷新框架页面。框架应该是不可见的,因此窗口的任何大小调整都需要调整IFRAME的大小。

有没有更简单、更优雅的解决方案?(由于时间限制,去Flash/AIR/Silverlight也不是一个选择)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-17 03:33:55

您可以使用Ajax加载页面的新内容。如果您的页面是在服务器端生成的,那么您可以省略正文周围的HTML,只输出它的内容。然后,您可以使用Ajax接收新的正文,并用body.innerHTML = request.responseText替换页面的现有正文。在Ajax回调中,您可以执行您喜欢的所有类型的错误处理,甚至可以忽略任何错误并重试Ajax请求。

代码语言:javascript
代码运行次数:0
复制
<html>
<head>
<script type="text/javascript">
function doRequest() {
    var request = new XMLHttpRequest();
    request.onreadystatechange = function() {
        if (request.readyState == 4) {
            if (request.status == 200)
                 body.innerHTML = request.responseText;
            doRequest(); // restart the request
        }
    }
    request.open("get", "", true);
    request.send(null);
}
</script>
<body onload="doRequest()">
Page content...
</body>
</html>
票数 5
EN

Stack Overflow用户

发布于 2010-09-17 03:27:14

Google对gmail使用iframe方法。谷歌的解决方案不会出错。

票数 2
EN

Stack Overflow用户

发布于 2011-01-10 15:07:06

您也可以使用JQUERY load方法。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3729959

复制
相关文章

相似问题

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