高效地重新加载数据/将数据从服务器推送到客户端

8 javascript php client-server comet stream

在将数据从Web服务器重新加载到前端时,我正在寻找"走的路"(即最有效,最常用,最普遍接受的方式).在最终的应用程序中,我将有几个输出字段,其中必须写入数据,例如:

在此输入图像描述

在最终应用程序中,数据流将彼此不同.这些行必须从服务器重新加载新的最新数据.

我一直在考虑使用Ajax请求来像每秒更新,但必须有另一种方法来做到这一点.Ajax请求将导致大量数据流量.此外,当使用Facebook聊天时,您不必每秒钟等待,几乎立即收到聊天.但是,当我使用Mozilla Firefox的开发人员工具时,我没有看到任何Ajax轮询请求.这让我想到是否会有不同的方式来做到这一点.

我查看了Node.js,但看起来我的主机无法实现.

我听说有人在谈论Ajax Push,我应该使用什么?如果是这样,你能给我一个基本的用法例子吗?

如果没有,那么当拥有多个必须在一秒钟内重新加载的数据流时,会有什么方法呢?

要求是速度低数据流量.因此,我认为不能连续轮询服务器,因为这会产生巨大的开销.

我认为它没有任何重要性,但我在后端使用PHP5.3,在前端使用jQuery 1.9.1的JavaScript.

leg*_*ter 8

这个问题已被多次询问,但方式略有不同.以下是一些值得阅读的参考资料:

总结:如果您正在寻找使用Apache在Apache上构建解决方案,那么持有开放持久连接(HTTP长轮询或流式传输)将非常快速地耗尽资源(效率非常低).因此,您最好使用托管解决方案(*免责声明 - 我为托管解决方案工作).

HTTP-Long轮询和HTTP Streaming是已被Server-Sent Events和WebSockets取代的解决方案.因此,在可能的情况下(Web客户端提供支持),您应该使用其中一种解决方案,然后再回到基于HTTP的解决方案.一个好的实时网络技术将自动为您处理.

由于您的图表显示您正在订阅多个数据流,因此您还应该考虑一个自然适合此的发布/订阅解决方案.同样,一个好的实时网络技术解决方案将为您提供.

另请参阅实时Web技术指南.