如何从RESTful Web服务提供AJAX定期更新?

时间:2010-12-22 11:20:06

标签: javascript ajax http rest webservice-client

我正在编写一个小型的演示网络服务。

我想使用此Web服务为服务使用者提供定期更新。

我必须指出,我只对高级层(即HTTP和Javascript)感兴趣。我不关心如何生成HTTP命令或动态javascript。我对该机制的基本概念感兴趣,并且不希望被绑定到特定的实现语言(我可以决定使用C / C ++,PHP,Python,C#,Java,Ruby甚至Lua,所以最好离开语言特定的方面out)。

这是典型用例场景中的事件序列:

  • 消费者首先通过AJAX HTTP GET命令发出初始请求

  • 服务以第一组数据

  • 响应
  • 随机时间后,服务会向客户端发送更多数据

  • 如果没有更多可用数据,服务会将最后一个数据发送给客户并告诉客户有效,停止“轮询”或“收听”新数据到达

IIRC,所需行为(如上所述)可以通过以下方式实现:

  1. 在服务使用者的页面中插入隐藏的框架
  2. 从服务器生成JSON响应,其中包含最新数据以及插入隐藏帧的动态Javascript。客户端上的javascript'轮询'新数据服务
  3. 来自服务的最终数据不再包含动态Javascript,从而有效阻止客户端不断轮询服务
  4. 有人可以解释实现上述行为所需的正确(最佳实践)步骤吗?

    [编辑]

    您可能已经意识到,这是(轻量级)服务器推送的一种形式。我知道彗星等,但它们太笨重/太重了我的需求(加上他们需要额外的第三方软件等)。我只是想使用Javascript和HTTP来推广我自己的轻量级版本。

1 个答案:

答案 0 :(得分:0)

我想你想调查Comet"Push technology" and "server push"是这类事情的更广泛术语。