代码之家  ›  专栏  ›  技术社区  ›  F.P

如何在其他客户端发生事件时更新异步页面?

  •  0
  • F.P  · 技术社区  · 15 年前

    现在,我想弄清楚,如何在另一个客户端触发事件时更新页面。所以可以说是一个异步消息板。用户写东西,调用事件,写文章。

    但是在其他客户的页面上,在重新加载并从数据库获得更新后的帖子列表之前,新的帖子当然还不可用。

    我不认为在AJAX中完全可以做到这一点,但是我也不知道如何在服务器端实现这一点,因为这需要重新加载页面来通知其他客户机事件。

    一旦有人更改了数据库,哈希值就会重新计算。如果脚本看到散列已更改并且与保存的散列不同,它将从数据库重新加载内容并保存新的散列。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Jane Panda    15 年前

    在这里,尽可能轻的轮询确实是最好的解决方案。即使你用了插座什么的。。。基本上,这仍然是一个等待的实时连接,可能需要自己投票(尽管是以一种更有效的方式)。

        2
  •  1
  •   Darin Dimitrov    15 年前

    你可以用投票。例如,每个客户端可能会向服务器发送连续的AJAX请求,比如说每30秒一次,以查看是否有新的帖子可用,如果是,则显示它们:

    setInterval(function() {
        // TODO: Send an AJAX request here to the server and fetch new posts.
        // if new posts are available update the DOM
    }, 30 * 1000);
    

    另一个不太常用的方法是 Comet HTML 5 WebSockets 允许服务器使用push通知客户端更改的实现。