2011-03-14 19 views
0

我试图通过原型/ PHP使彗星请求喜欢这里:http://www.zeitoun.net/articles/comet_and_php/start的Apache2没有响应

但是!当连接打开时,我的项目中的其他页面不会从同一浏览器加载。 我能做些什么来提供正常行为?

非常非常TNX

+0

Afaik彗星并不是真的很受欢迎......我正在使用etherpad和firefox/safari在mac上,它回到“大量快速和小的请求”自定义模式,因为它不支持长轮询的东西。 ..你是否还检查服务器的输出缓冲配置,因为如果服务器等待flush或脚本结束发送,浏览器可能会挂起。 – yent 2011-03-14 14:39:03

+0

我发现了这个问题。它是非本地实现的原因,Comet意识形态(没有Comet服务器)通过hack(iframe)实现,没有它将不会响应其他请求。但它是恕我直言^^ – Joeeee 2011-03-14 15:11:00

回答

3

彗星的工作原理是保持服务器和客户端之间打开的连接。浏览器有一个最大数量的连接,它们允许一个页面创建(类似IE的2 max),我认为它也可以将同一个域的所有请求分组在一起。这就是为什么连接不适合你。

我相信这不是错误的服务器,它是浏览器,使用iframe是正确的解决方案,正如你所提到的,但它不是服务器故障。

[编辑] 为您简单的方法是监测重点。当页面有焦点时,打开一个连接,当连接丢失时(即用户切换标签页)关闭连接并在更新页面之前再次等待焦点。这样你就可以看到多个页面的更新,而且随时只需要一个彗星连接。

+0

tnx,但它似乎是与iframe相同的故事。 – Joeeee 2011-03-14 20:27:43

+0

tnx,可能你知道如何断开连接?我正在使用jquery.ajax后 – Joeeee 2011-03-15 07:20:00

+0

@Joeeee [取消jQuery中的Ajax请求](http://stackoverflow.com/questions/446594/kill-ajax-requests-using-javascript-using-jquery) – Andrew 2011-03-15 14:15:51