PHP循环中进度展示以及"假死"
时间:2021-07-01 10:21:17
帮助过:2人阅读
PHP循环中进度显示以及"假死"
理论上程序应该运行完500次然后才显示成功,但是基本只能运行个十来次页面就开始全白(同时网页中载入的标志也消失了),就不再往下继续执行程序了
求助这种问题应该如何解决,谢谢
另外,进度方面不知道应该如何处理。再次感谢
for ($i=1;$i<500;$i++){
file_put_contents("{i}.txt",$i);
sleep(3);
$s = $i/100;
if($s==ceil($s)) {
$s = $i/500;
echo "进度:{$s}
";
}
}
echo "OK";
?>
分享到:
------解决方案--------------------3秒×500= 多长时间?
不死才怪
------解决方案--------------------set_time_limit吧
------解决方案--------------------php是一次计算一次输出,即使像CLI那样边计算边输出,也要不断刷屏才能实现进度条效果
进度在客户端显示,你觉得php会在服务器端计算->客户端显示->服务器端计算->客户端显示->……这样么?
如果你想要这样效果,你就要把循环拆开,客户端收到第一个数据,然后ajax向服务器发出next请求,php再计算下一个,向客户端发结果,客户端再ajax……