1

我目前有一段 jquery/js 代码,每隔几秒 (5) 运行一次 GET 请求,寻找可能进来的新数据。

有没有什么方法可以让 PHP 在有新帖子时“推送”或向 javascript 代码发出信号,而不是每隔几秒钟检查一次是否有新帖子出现?

另一个例子:我正在为用户调整图像的大小。我想向用户显示有关正在进行的过程的实时数据 - 显示诸如“上传到服务器”、“调整图像大小”、“存储图像”之类的消息。

对这样的事情有任何帮助吗?

4

5 回答 5

6

Comet正是您所需要的。

它的工作原理是不让服务器立即响应,保持在数据进入时发送数据的可能性。

问题是 apache 和 IIS 目前在处理那么多打开的连接方面不太好。看看usobans的回答。

于 2009-07-14T16:21:13.703 回答
4

这是您不希望做的事情。对 5 秒的 javascript 投票感到满意。这确实是最好的方法。

于 2009-07-14T16:16:20.173 回答
1

我推荐一个 SaaS 解决方案,例如WebSync On-Demand;对有限的用户免费,适用于任何服务器语言,设置自己的服务器没有麻烦等。

于 2010-01-11T20:21:43.783 回答
0

you can use some sort of Comet technique, but that may require special considerations depending on your load. For example, if you are expecting a heavy load, you may need to configure your web server so that it can handle all of the concurrent connections. If you don't have that kind of control over your web server but expect alot of traffic, then it's best to stick with the polling technique.

but if you're just going to serve up a page to a small group... then try out one of those Comet techniques. there are jQuery plug-ins that can help:

Comet and jQuery

于 2009-07-14T16:39:27.443 回答
0

最简单的解决方案是使用您当前实施的 5 秒轮询。这是最简单的实现,并且通常运行良好。

另一种选择是实现“长轮询”版本......其中javascript代码打开与服务器的连接并使其保持打开状态(允许服务器使用该连接以更直接的方式向客户端发送数据)。当客户端 javascript 检测到连接已关闭(由于超时)时,它将启动另一个连接回服务器。服务器代码需要能够处理长轮询客户端的数量,并处理客户端的偶尔断开连接(当它们重新连接时为它们排队消息)。

最后,还有类似“彗星”的解决方案,可以让您对客户端进行服务器端推送。我不知道基于 php 的 Comet 实现......

于 2009-07-14T16:52:00.287 回答