javascript - 强大的自动刷新网页

标签 javascript refresh page-refresh

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

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

我能想出的唯一选择是在 IFRAME 中托管整个页面,并在父页面上使用一些脚本刷新框架页面。框架应该是不可见的,因此调整窗口大小也需要调整 IFRAME 的大小。

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

最佳答案

您可以使用 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>

关于javascript - 强大的自动刷新网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3729959/

相关文章:

java - 在 Servlet 中使用 setHeader() 方法设置 Refresh HTTP header 时传递参数

javascript - window.scroll 平滑不适用于 Safari

javascript - 如何在 Ionic2 中的 ngAfterViewInit() 下访问 ionic 输入数值?

javafx treetableview 单元格值未更新

javascript - beforeunload Javascript 的延迟

PHP header ('Refresh: 1;url=destination' );在 Flask + python 中?

javascript - 防止 Meteor 刷新时数组清空

javascript - Chrome/Internet Explorer 浏览器刷新(F5、ctrl+R、刷新箭头等)无法在远程服务器上使用 Angular (2+) 项目

javascript - 需要从 2 个不同的网页读取值并使用 Javascript 将其放入第三个页面的 View 中

JavaScript 复选框只提交一个输入