我想实现像www.foursquare.com的索引页如何实现实时仪表板?
我检查与Chrome的开发者工具foursquare.com的索引页,并惊讶,他们不使用XHR至约得到这些信息的实时仪表板。每5秒钟一次。
使用ajax轮询会在某些浏览器中导致内存泄漏并导致服务器繁忙。
有什么办法可以用PHP和jQuery(AJAX)有效地实现实时仪表板?
(也许我需要一个额外的服务器,像推服务器?):
我想实现像www.foursquare.com的索引页如何实现实时仪表板?
我检查与Chrome的开发者工具foursquare.com的索引页,并惊讶,他们不使用XHR至约得到这些信息的实时仪表板。每5秒钟一次。
使用ajax轮询会在某些浏览器中导致内存泄漏并导致服务器繁忙。
有什么办法可以用PHP和jQuery(AJAX)有效地实现实时仪表板?
(也许我需要一个额外的服务器,像推服务器?):
Foursquare的主页载入30项(id=recent29
,id=recent28
,...),但一次只显示11个。所以你会有大约90秒的实时感受(之后,相同的物品会重新出现)。
...
$('#recent'+toShow).slideDown(1000, move(i));
$('#recent'+i).slideUp(1000, move(i));
...
对于一些双向的客户端服务器通信,看看websockets,即使他们没有得到普遍支持的是,他们最终成为一个标准。
WebSocket API正在由W3C标准化,WebSocket协议正在由IETF标准化。
一种方法来获取数据推送到客户端是这样一个循环:
我之前曾研究过这个。我是否必须设置一个仅用于Comet目的的独立服务器?我不知道实现获取彗星信息的一部分与jQuery(客户端)或PHP(服务器端):( – InspiredJW
这是一个很好的问题,我不知道如果你需要一个专用的服务器,你一定会需要命令你可以打开一个“频道”并向该频道发送一个事件,然后在客户端你有一个回调函数,当你收到一个事件时,这个函数就会触发 –
如果你不想要为了维护您自己的实时基础架构,您应该查看托管的实时服务服务,例如我工作的[Pusher](http://pusher.com)。使用此功能,您可以将消息推送到您的Web客户端我们的其余API,并使用我们的JavaScript(或其他技术)客户端连接到我们的服务。 – leggetter
你的意思是一个AJAX长轮询? – InspiredJW