强制从外部页面刷新网页

时间:2013-12-23 13:45:16

标签: javascript html

我遇到这种情况: 100台计算机正在显示一个网页,从后端我可以更新此网页。

我希望我的100台计算机上显示的网页会自动更新。

有没有办法刷新/更新页面而不进行轮询? 外部页面可以强制页面重新加载的最佳方式,但我认为这是不可能的。

由于

微米。

4 个答案:

答案 0 :(得分:1)

在最近的浏览器中,有一个websockets的实现,允许服务器将数据推送到客户端。它只适用于某些Web服务器(tomcat 7,node.js等...) Websocket规范是here

另一种方法是客户端启动http请求的长请求,服务器只有在有东西要发送给客户端时才会回答。

更多信息here

答案 1 :(得分:0)

您可以定义到服务器的路由,该路由返回true或false,具体取决于是否需要刷新。然后你会在客户端做:

function checkReload() {
        $.ajax({
           url: "127.0.0.1/needRefresh",
           success: function(data) {
              if (data == "true")
                 location.reload();
              else
                 setTimeout(checkReload, 1000);
           }
        });
}
setTimeout(checkReload, 1000);

这段代码的作用是每秒(setTimeout函数),它用ajax查询服务器,知道是否需要重新加载页面,然后重新加载或不重新加载,具体取决于服务器的响应。

答案 2 :(得分:0)

您可以使用WebSockets。例如:

var socket = new WebSocket("ws://javascript.ru/ws");
socket.onmessage = function(event) {
    if (event.data == "reload") {
        location.reload();
    }
};

使用WebSockets,您还可以组织从其中一个页面重新加载所有页面并传播事件。

WebSockets实现了一个事件驱动的架构。您将为事件和消息实现一些处理程序,然后启动它。然后,您可以通过服务器从服务器或其他页面发送事件,并根据需要进行处理。

答案 3 :(得分:-1)

使用Javascript:否。

使用任何服务器端语言:是。您始终拥有使用 CRON 投票的特权。

参见:Is "long polling" the most efficient way to create a Web Real Time App?