1

客户端发出 2 个并发请求。(1 需要 60 秒 - 长轮询)和另一个不是长轮询 - 应该立即返回。当我不进行长时间轮询时,它确实会立即返回。但是,一旦我开始对另一个线程进行长轮询,另一个线程就需要永远执行。

Firebug 显示请求正在等待 10-50 秒。在服务器上,我分析了从 php 脚本开始到返回客户端的所有请求,它显示每个请求只用了 300 毫秒或更短的时间。

这个问题大约在我开始进行长轮询(与其他 XHR 请求)的同时开始。我对这两个请求都使用了 jquery。

服务器显示它的负载非常轻。CPU 和内存少于 2%。8 个进程用完了 15 个进程。(它似乎与那个数字 8 相差不大,即使我运行了更多的 ajax 请求)。我猜每个进程可以同时运行多个 ajax 线程。

我确保在所有进程执行完毕后立即退出。如果 prstat -J 下仍有 7 个未使用的进程,我看不到进程池是如何用完的。此外,问题有时会间歇性地发生。Firefox 应该能够处理 2 个并发 ajax 请求。我不明白问题是什么。

4

1 回答 1

1

我在 firefox 和两个 jsonp 请求中遇到了同样的问题,一个是长轮询。问题是 jsonp 基本上只是获取 javascript 和 firefox 同步加载动态插入脚本的脚本标签。

这就是为什么长轮询请求必须在第二个甚至开始加载之前完成。

如果您的案例不是 jsonp,我将无法提供任何帮助。

于 2011-01-20T02:30:44.123 回答