3

我有很多网页需要每分钟自动刷新一次。使用 META REFRESH 或一些 javascript 轻松完成。(是的,整个页面都需要刷新——很多内容都在变化)。

但是,它需要尽可能的健壮。如果网络服务器暂时关闭或网络中断,则无法刷新,然后会出现 404 错误等,并永久卡在错误页面上。

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

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

4

3 回答 3

5

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

<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>
于 2010-09-16T19:33:55.103 回答
2

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

于 2010-09-16T19:27:14.323 回答
-1

您还可以使用 JQUERY 加载方法。

于 2011-01-10T07:07:06.320 回答