如何实现实时仪表板?

时间:2011-08-04 00:51:36

标签: php ajax real-time foursquare

我想实现一个实时仪表板,如www.foursquare.com的索引​​页

我使用Chrome的开发者工具检查了foursquare.com的索引​​页面,并惊讶于他们没有使用xhr来获取这些信息。每5秒钟一次。

使用ajax轮询会导致某些浏览器出现内存泄漏,使服务器更加繁忙。

有没有什么办法可以用PHP和jQuery(AJAX)有效地实现实时仪表板?

(也许我需要一个额外的服务器,比如推送服务器?):|

3 个答案:

答案 0 :(得分:0)

将数据推送到客户端的一种方法是这样的循环:

  1. 在浏览器中打开AJAX请求。
  2. 服务器等待请求打开,直到超时或新数据可用。
  3. 服务器返回带有新数据或超时的请求,客户端会立即打开新请求。

答案 1 :(得分:0)

Foursquare的首页加载了30个项目(id=recent29id=recent28,...),但一次只显示11个项目。所以你会有大约90秒的实时感觉(之后,相同的项目重新出现)。

...
$('#recent'+toShow).slideDown(1000, move(i));
$('#recent'+i).slideUp(1000, move(i));
...

对于某些双向客户端服务器通信,请查看websockets,即使它们尚未得到普遍支持,它们最终也会成为标准。

  

WebSocket API正在由W3C标准化,WebSocket协议正由IETF标准化。

答案 2 :(得分:0)

你可以使用彗星,APE特别容易设置和配置:

http://www.ape-project.org/

后端是用C语言编写的,因此非常快。