私は、同じブラウザとクライアントからのAJAXリクエストが6リクエストのチャンクでキューに入れられているように見えますが、その理由を特定できないという問題が発生しています。AJAXリクエストキューイングをどうやって防ぐのですか?
これは私がこれが起こっていることを証明するために使用したコードです。
<?php
if (isset($_GET['index'])
and isset($_GET['start'])) {
session_write_close();
sleep(2);
header('Content-Type: application/json');
echo json_encode(
array(
'index' => $_GET['index'],
'start' => $_GET['start']
)
);
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="/jquery-1.12.4.min.js"></script>
<script language="javascript">
jQuery(window).load(function() {
for(var i = 0; i < 10; i++) {
jQuery.ajax({
url: '/index.php',
dataType: 'json',
data: { index: i, start: Math.floor(Date.now()/1000) },
success: function(response) {
console.log('Request '+response.index+', start: '+response.start+', end: '+Math.floor(Date.now()/1000));
}
});
}
});
</script>
</head>
<body></body>
</html>
かかわらずPHPスリープ時間またはサーバ側session_write_close();
の包含の、応答が戻ってくるは、6のグループに互い違いここ遅延を示すために描画の線と上記のコードからサンプルコンソールログ出力です。
(index):13 Request 0, start: 1472236910, end: 1472236912
(index):13 Request 1, start: 1472236910, end: 1472236912
(index):13 Request 2, start: 1472236910, end: 1472236912
(index):13 Request 3, start: 1472236910, end: 1472236912
(index):13 Request 4, start: 1472236910, end: 1472236912
(index):13 Request 5, start: 1472236910, end: 1472236912
----- Delay that matches the PHP sleep time after 6 responses -----
(index):13 Request 6, start: 1472236910, end: 1472236914
(index):13 Request 7, start: 1472236910, end: 1472236914
(index):13 Request 9, start: 1472236910, end: 1472236914
(index):13 Request 8, start: 1472236910, end: 1472236914
私は私のApacheの設定は、それがすべてのヘルプをいただければ幸い256
をデフォルトにする必要がありますのでMaxClientsのは、指定されていないことを確認しました。
ほとんどのブラウザでは、同じサーバに対する同時リクエストの数に制限があるため、使用しているブラウザのブラウザの制限がある可能性があります –
ブラウザには、送信するアクティブなリクエスト数に制限がありますでる。その数はブラウザによって異なります。ブラウザを最大限に使用している可能性があります。 –
ブラウザに制限が適用されていることを確認する方法はありますか? –