0

直截了当:我有这个 javascript:

for(item=1;item<5;item++)
{
    xmlhttp=new XMLHttpRequest();
    xmlhttp.open("GET",'zzz.php', true);
    xmlhttp.send();
}

在 PHP 文件中是这样的:

usleep(5);die('ok');

现在的问题是 javascript 似乎在等待每个 ajax 调用完成后再发送另一个调用。所以第一个响应会在大约之后回来。5 秒,10 秒后,以此类推。

这是我所做的一个非常简化的版本,因为真正的脚本涉及在 PHP 和 jQuery 中使用 cURL 作为 JS 库。但问题仍然存在。

为什么响应每隔 5 秒返回一次?

4

2 回答 2

2

如果您在 PHP 中使用会话,则连续请求将被“保留”,直到会话文件上的锁定被释放,或者通过终止先前持有锁定的脚本,或者通过该脚本中的显式 session_write_close() 调用。这使服务器看起来一次只运行一个请求,这可能是您的问题。

于 2010-06-16T10:40:48.610 回答
1

所有五个请求可能不会同时处理,因为 HTTP 标准明确规定您只能保证在任何时候有两个同时连接到服务器(尽管大多数浏览器有更高的限制,所以他们可能会尝试拥有大约4-8 个连接)。如果您达到的限制高于一个,那么这可能是一个瓶颈。

于 2010-06-16T10:44:07.303 回答