如何实现实时仪表板?
我想实现一个实时仪表板,例如 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Foursquare 的主页加载了 30 个项目(
id=recent29
、id=recent28
...),但一次只显示 11 个。所以你会有大约90秒的实时感觉(之后,相同的项目再次出现)。对于某些双向客户端服务器通信,请查看 websockets,尽管它们尚未得到普遍支持,它们最终成为一个标准。
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).For some bidirectional client server communication, take a look at websockets, even though they are not universally supported yet, they eventually become a standard.
将数据推送到客户端的一种方法是这样的循环:
One method to get data pushed to a client is a loop like this:
您可以使用 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.