如何实现实时仪表板?

发布于 2024-11-27 22:58:54 字数 260 浏览 0 评论 0原文

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

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

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

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

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

I would like to implement a realtime dashboard like an index page of www.foursquare.com

I checked foursquare.com's index page with Chrome's developer tool and surprised that they don't use xhr to get those information approx. every 5 seconds.

Using ajax polling causes memory leak in some browsers and make a server busier.

Is there any way that I can implement a realtime dashboard efficiently with PHP and jQuery(AJAX)?

(Perhaps I need an extra server something like a push server?) :|

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

花开半夏魅人心 2024-12-04 22:58:54

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

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

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

W3C 正在对 WebSocket API 进行标准化,IETF 正在对 WebSocket 协议进行标准化。

Foursquare's homepage loads 30 items (id=recent29, id=recent28, ...) but displays only 11 at once. So you will have a real-time feeling for about 90 seconds (after that, the same items reappear).

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

For some bidirectional client server communication, take a look at websockets, even though they are not universally supported yet, they eventually become a standard.

The WebSocket API is being standardized by the W3C, and the WebSocket protocol is being standardized by the IETF.

最后的乘客 2024-12-04 22:58:54

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

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

One method to get data pushed to a client is a loop like this:

  1. Open AJAX request in browser.
  2. Server waits with the request open until it either times out or new data is available.
  3. Server returns the request with either new data or a timeout, and client immediately opens a new request.
彩虹直至黑白 2024-12-04 22:58:54

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

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

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

You could use comet, APE is particularly easy to setup and configure:

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

Back-end is written in C so it's very fast.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文