Ajax 请求未在 Windows 上的 Chrome 中并行运行

jbo*_*rch 5 windows jquery google-chrome xmlhttprequest

我正在调试一个缓慢的单页应用程序(SugarCRM 7),该应用程序使用大量异步请求从服务器获取数据。

我已经设置了以下脚本来测试连接/服务器等中可能存在的延迟。

<?php
if (isset($_GET['ajax'])) {
    if (isset($_GET['delay'])) {
        sleep((int) $_GET['delay']);
    }
    echo 'Success...';
    exit(0);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div id="main"></div>
Number of requests: <input type="text" size="2" id="number" value="1"> Delay: <input type="text" size="2" id="delay" value="0"> <button id="button">Go!</button> <button id="clear">Clear...</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
(function () {
    var $main = $('#main');
    $('#button').click(function () {
        var number = $('#number').val(),
            delay = $('#delay').val();
        for (var i = 0; i < number; i++) {
            var start = (new Date()).getTime();
            $.ajax({
                url: 'test.php',
                data: {'ajax': 1, 'delay': delay},
                success: function (data) {
                    var end = (new Date()).getTime(),
                        elapsed = end - start;
                    $main.append('<div>' + data + '  - Elapsed time is: ' + elapsed + ' ms</div>');
                }
            });
        }
    });
    $('#clear').click(function () {
        $main.html('');
    });
})();
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

当我在 Mac 上的 Chrome 中测试它时,同时触发 10 个请求时得到以下预期结果: Mac 上的 Chrome

然而,当我在 Windows 上的 Chrome 中测试相同的脚本时,我得到以下结果: 窗户上的镀铬物

我们可以看到 Mac 上有 10 个请求并行运行(一次 6 个),总耗时约为 2 秒。但在 Windows 上,请求似乎不是并行运行的,总耗时约为 10 秒。

知道这是为什么吗?服务器正在运行 Apache 和 PHP 5.3(如果相关)。

编辑:这是因为缓存。如果我禁用缓存,请求将并行执行。