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 个请求时得到以下预期结果:

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

我们可以看到 Mac 上有 10 个请求并行运行(一次 6 个),总耗时约为 2 秒。但在 Windows 上,请求似乎不是并行运行的,总耗时约为 10 秒。
知道这是为什么吗?服务器正在运行 Apache 和 PHP 5.3(如果相关)。
编辑:这是因为缓存。如果我禁用缓存,请求将并行执行。
| 归档时间: |
|
| 查看次数: |
651 次 |
| 最近记录: |