我的AJAX请求大约需要7秒钟才能完成。对于一个页面,我有很多这样的请求。服务器几乎按顺序响应每个请求。对于10个请求,我在1分钟后收到最后一个请求。有没有办法独立获得答案?我只是尝试使用$ http.get和jQuery AJAX进行调用。 我希望在7秒的处理时间后立即得到所有请求的响应 例如,My $ http.get代码如下:
$q.all([
$http.get('http://localhost/ajaxtest/index.php?route=test/sleepTest&seq=' + 0),
$http.get('http://localhost/ajaxtest/index.php?route=test/sleepTest&seq=' + 1),
$http.get('http://localhost/ajaxtest/index.php?route=test/sleepTest&seq=' + 2),
$http.get('http://localhost/ajaxtest/index.php?route=test/sleepTest&seq=' + 3),
$http.get('http://localhost/ajaxtest/index.php?route=test/sleepTest&seq=' + 4),
$http.get('http://localhost/ajaxtest/index.php?route=test/sleepTest&seq=' + 5),
$http.get('http://localhost/ajaxtest/index.php?route=test/sleepTest&seq=' + 6),
$http.get('http://localhost/ajaxtest/index.php?route=test/sleepTest&seq=' + 7),
$http.get('http://localhost/ajaxtest/index.php?route=test/sleepTest&seq=' + 8),
$http.get('http://localhost/ajaxtest/index.php?route=test/sleepTest&seq=' + 9)
])
.then(function(responses) {
console.log( responses[0].data);
console.log( responses[1].data);
console.log( responses[2].data);
});
在服务器端,我正在运行sleep()函数以进行测试。代码如下:
public function sleepTest(){
session_write_close();
sleep(10);
print $this->request->get["seq"];
}
XHTTP请求结果一个接一个地发生(在上一个响应发生后大约10秒)。请参阅屏幕截图中的响应时间,服务器在上一次响应10秒后响应每个请求。 最后一次响应是在100秒后发生的,而我预计所有响应都会在10秒后发出。
更新:有些导师提到另一个问题已经接受了答案,但答案并不清楚。我按照推荐的文件,但无法得到我的期望。添加session_write_close();部分地帮助我,它平行地做出6个响应,这意味着我一次从服务器6获得AJAX响应。我还能做些什么来并行地获得所有(10+)个响应吗?