You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何多并行AJAX请求间会出现1秒以上等待延迟?

并行AJAX请求部分出现长TTFB(约1秒卡顿)问题

当向后端同时发送1个以上并行AJAX请求时,部分请求能在<100ms内正常响应,但部分请求会在返回响应前卡顿约1秒(长TTFB),该现象与请求执行顺序无关。

测试环境与结果

为复现问题,编写了极简HTML+jQuery/PHP前后端脚本,创建6个并行AJAX请求,分别在本地服务器及配置相同的DigitalOcean服务器(Debian 10 Apache + PHP 7.4)上运行:

  • 本地服务器测试结果:部分请求TTFB约1秒,其余请求响应正常
  • DigitalOcean服务器测试结果:同样出现部分请求TTFB长达1秒的情况

测试代码

JavaScript代码

function ajaxAtOnce() {
    $.get("ajax1.php", function (data) {
        console.log(data);
    });
    $.get("ajax2.php", function (data) {
        console.log(data);
    });
    $.get("ajax3.php", function (data) {
        console.log(data);
    });
    $.get("ajax4.php", function (data) {
        console.log(data);
    });
    $.get("ajax5.php", function (data) {
        console.log(data);
    });
    $.get("ajax6.php", function (data) {
        console.log(data);
    });
}

PHP端点代码(所有端点代码一致)

<?php
    // 返回100个随机排序的数字
    $array = range(1,100);
    shuffle($array);
    echo json_encode($array);
?>

关键现象说明

  • 若在AJAX请求间设置足够长的延迟,所有请求均可在预期时间内响应:
function ajaxWithTimeout() {
    setTimeout(function() {
        $.get("ajax1.php", function (data) {
            console.log(data);
        });
    }, 1000);

    setTimeout(function() {
        $.get("ajax2.php", function (data) {
            console.log(data);
        });
    }, 2200);

    setTimeout(function() {
        $.get("ajax3.php", function (data) {
            console.log(data);
        });
    }, 3500);

    setTimeout(function() {
        $.get("ajax4.php", function (data) {
            console.log(data);
        });
    }, 4700);

    setTimeout(function() {
        $.get("ajax5.php", function (data) {
            console.log(data);
        });
    }, 5900);

    setTimeout(function() {
        $.get("ajax6.php", function (data) {
            console.log(data);
        });
    }, 7100);
}
  • 若所有请求发送至同一端点(如ajax1.php),则无此问题
  • 已排查过相关服务器参数RateLimitInterval=30s, RateLimitBurst=1000,无论是默认值还是取消限制,均无法解决问题

该问题在React等JS框架开发SPA时影响明显,最初便是在这类场景中发现此问题。

补充信息

  • 本地服务器采用CGI/FastCGI模式运行PHP

内容的提问来源于stack exchange,提问作者Dino Cagalj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 08:55:20