【问题标题】:forece refresh client page from server side [closed]从服务器端强制刷新客户端页面[关闭]
【发布时间】:2013-04-21 00:46:57
【问题描述】:

如何从服务器端刷新当前客户端视图页面? 例如,如果我想强制刷新所有客户端现在正在查看的页面,以便他们可以查看新内容。我想在我想要使用 PHP 的时间进行刷新。

有可能吗?

【问题讨论】:

  • AFAIK 你不能发送response 直到他们request
  • @legendinmaking 是对的。您将不得不通过 JavaScript、JQuery 等向 PHP 页面发送请求以刷新它。 PHP 渲染完成后,无法刷新“自身”
  • 不可能。页面发送到浏览器后,用户就可以请求更多页面等。
  • 您可以使用 AJAX 和/或长轮询。

标签: php client refresh client-side


【解决方案1】:

您可以通过两种方式获取该行为:

WebSockets - 如果您的所有客户端都通过 Web 套接字连接,则您在客户端和服务器之间建立了直接连接。您需要在时间上发挥创意,但您当然可以随时发送需要刷新的命令。这要求您在 PHP http://socketo.me/ 和 JavaScript 中实现 Web 套接字。

轮询 - 您可以将客户端设置为每 x 秒发送一次 AJAX 请求。服务器以 bool 值进行响应,AJAX 成功处理程序使用该值来确定是否应该刷新页面。

【讨论】:

    【解决方案2】:

    使用网络套接字。您可以使用带有thisthis 的PHP 套接字

    我认为 php Sockets 需要您的 PHP 版本为 5.3 或更高版本。

    如果您没有 PHP v5.3 或更高版本,您可以使用 Node JSSocket.io

    长池也是一种选择,但考虑到您的服务器将收到的请求数量,这不是一个好的解决方案。用户的带宽使用也会变高。

    【讨论】:

      【解决方案3】:

      如果您想以特定间隔刷新页面,请将其包含在您的 <head> 中:

      <meta http-equiv="refresh" content="5">
      

      将“5”更改为您喜欢的任何秒数。

      如果您想在事情发生变化时刷新,您需要在客户端上使用一些 Javascript - 例如对 URL 的 Ajax 请求,询问自页面加载以来是否有新数据,并在必要时刷新。

      【讨论】:

        猜你喜欢
        • 2013-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多