【问题标题】:AJAX requests hang when served in quick successionAJAX 请求在快速连续服务时挂起
【发布时间】:2009-12-26 00:11:42
【问题描述】:

在我的笔记本电脑上,我有一个应用程序大约在同一时间(毫秒差异)向单个 PHP 脚本发出 7 个 AJAX GET 请求。他们都以我想要的结果成功返回。

然后我将此脚本移至运行 Apache 和 PHP 的服务器 (Windows Server)。但是,当我发出相同的 7 个 AJAX 请求时,此过程会挂起。但是,如果我单独提出每个请求,那么它们都会成功返回!有些事情不想让我完成所有 7 项。

为什么会这样?我可以在PHP.inihttpd.conf 中查找哪些配置变量来确定这是什么?

谢谢

【问题讨论】:

  • 不是你的问题的答案,但为什么要同时发送 7 个请求?你能不能把它们组合成一个,它会返回你需要的所有信息? (如果你有很多用户,那对你的服务器来说会好很多)
  • 发送的请求高度依赖用户且是随机的,我无法更改。

标签: php ajax apache http-get


【解决方案1】:

我认为问题可能出在浏览器端。

大多数浏览器在与同一台服务器通信时有 2 个并发连接限制。

当您将应用程序移至服务器时,额外的延迟可能会与您的 AJAX 请求重叠,这些请求在 localhost 上正在快速连续地提供服务。

您可能想查看这些相关文章:

【讨论】:

【解决方案2】:

服务器可能有一个限制器来防止过多的请求过快进入。

【讨论】:

    【解决方案3】:

    也许您的 Apache 配置限制了来自同一 IP 甚至 Windows 的并发连接数。它是什么版本的 Windows?哪种 Apache 安装,独立安装还是作为 XAMPP 的一部分安装?

    【讨论】:

    • 笔记本电脑 = Windows XP,另一台机器 = Windows Server 2003。可能是因为“KeepAliveTimeout:在同一连接上等待来自同一客户端的下一个请求的秒数。” - 还是略有不同?
    • 笔记本电脑 = WAMP 和其他机器 = 独立(apache 和 PHP)。 PHP 作为一个模块使用。
    • 听起来不错,试着摆弄一下。这将导致 7 个连接一个接一个地被处理,而不是同时处理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2018-03-22
    • 2020-08-31
    • 2011-12-22
    • 2016-01-03
    • 1970-01-01
    • 2017-02-07
    相关资源
    最近更新 更多