【问题标题】:PHP script with sleep() + AJAX returns one after another?带 sleep() + AJAX 的 PHP 脚本一个接一个返回?
【发布时间】:2019-11-25 08:28:01
【问题描述】:

情况

同时对同一个.php文件进行多次AJAX调用,参数不同

getInfo("keyword1");
getInfo("keyword2");
getInfo("keyword3");

php 非常快地做某事,然后休眠 2 秒,然后回显它的结果。

//do stuff
sleep(2);
echo $myresult;

预期输出:

0 秒:什么都没有

~2 秒:所有 3 个结果

实际输出:

0 秒:什么都没有

~2 秒:1 个结果

~4 秒:2 个结果

~6 秒:3 个结果

这是为什么呢?为什么第一个 AJAX 调用需要在服务器端启动下一个 AJAX 调用之前解析?

这是否是 PHP 的问题,不能同时执行同一脚本多次? 我该如何解决这个问题?

【问题讨论】:

  • 确保包含更详细的代码,以便我们更了解您的情况。
  • 我不认为这里需要特定的代码,这是一个关于 php 中多线程的一般问题,任何带睡眠的代码都可以用于该问题。可以简单到sleep(1); echo 'Hello world';
  • 提供你的 PHP 代码
  • 您使用的是什么服务器? (例如 php 的内置 web 服务器一次只处理一个请求,php 中的默认会话处理程序也是阻塞的。)
  • Hello @MiK 在 ajax 中使用缓存:false/true

标签: php ajax sleep


【解决方案1】:

找到了解决办法。

如果您得到连续的结果,请确保您的脚本中没有将session_start() 与睡眠一起使用。偶然找到了答案,也感谢 Roland Starke 的评论。

【讨论】:

猜你喜欢
  • 2010-11-05
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多