我希望在暂停之前和之后回复一些输出。
这是我的代码:
<?php
class AsyncOperation extends Thread {
public function __construct(){
}
public function run(){
sleep(11);
echo "Running ";
}
}
echo "Its Here";
flush();
$thread = new AsyncOperation();
$thread->start();
?>
这应该显示输出&#34;它在这里&#34; .... 11秒后......应该显示&#34;跑步&#34;
但是浏览器会显示它&#34; Running Here Here&#34;,并在11秒后显示整个字符串。
我不知道为什么会这样。请帮助我解决这个问题,我在这里遇到了最近2晚。
任何解决方案??
答案 0 :(得分:3)
我不确定这适用于所有浏览器,但这完全适用于
<?php
if (ob_get_level() == 0) ob_start();
class AsyncOperation
{
public function run()
{
for ($i = 0; $i < 10; $i++) {
echo " ";
echo str_pad('', 4096) . "\n";
# Flushing out..........!
ob_flush();
flush();
sleep(1);
}
echo "Running ";
}
}
echo "Its Here<br>";
$thread = new AsyncOperation();
$thread->run();
?>
我在run()
循环下使用sleep(1)
修改了您的for
,与sleep(11)
相同。