2

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

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

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

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

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

4

3 回答 3

0

您可以使用 comet,APE 的设置和配置特别容易:

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

后端是用 C 编写的,所以速度非常快。

于 2011-08-04T01:03:43.747 回答
0

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

  1. 在浏览器中打开 AJAX 请求。
  2. 服务器等待请求打开,直到它超时或有新数据可用。
  3. 服务器返回带有新数据或超时的请求,客户端立即打开一个新请求。
于 2011-08-04T00:55:37.090 回答
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 标准化。

于 2011-08-04T00:56:06.060 回答