【问题标题】:Long Polling Blocks my other Ajax Requests长轮询阻止了我的其他 Ajax 请求
【发布时间】:2012-08-14 06:07:25
【问题描述】:

好的,我确实使用了 Apache 服务器,但我遇到了以下情况。

  1. 我有一个向长轮询 PHP 文件发送 XHR 请求的 JScript
  2. 现在请求被长轮询 15 秒
  3. 现在,当长轮询正在进行时,我尝试发送另一个 XHR 请求
  4. 但是另一个 XHR 请求超时并且似乎没有到达我的 Apache 服务器

现在我的问题是,为什么会发生这种情况?这是因为 Apache 服务器仅对单个客户端使用单线程连接吗?或者由于长时间轮询,连接变得持久,无法授予其他 XHR 请求?

我的服务器是 XAMPP 1.8.0 和 Apache 2.4.2

【问题讨论】:

    标签: php xmlhttprequest long-polling


    【解决方案1】:

    已经在这里找到答案了。

    我需要使用下面的函数

    session_write_close();
    

    Long polling locking up other AJAX calls

    【讨论】:

    • 这真的解决了吗?我以为我已经修复了好几次,但结果证明它对时间敏感。在 chrome 中尝试“清空缓存和硬重新加载”,看看您是否真的修复了它。如果长轮询请求在另一个(重要)请求之前出现,并且 keepalive 时间为 5 秒,则重要请求将在打开另一个连接之前阻塞 5 秒。据我所知,浏览器没有实现 HTTP 流水线,这是非常不幸的。甚至服务器推送事件(进行长轮询的“新方法”)也有同样的问题。
    猜你喜欢
    • 2012-09-28
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多