我有以下代码:
<?php
$initialSleep = ( isset($_GET['is']) ) ? $_GET['is'] : 0; // seconds - default 0 if not specified
$loopCount = ( isset($_GET['lc']) ) ? $_GET['lc'] : 1; // default 1 if not specified
$loopSleep = ( isset($_GET['ls']) ) ? $_GET['ls'] : 1; // seconds - default 0 if not specified
sleep($initialSleep);
for ( $i = 0; $i < $loopCount; $i++) {
sleep($loopSleep);
echo time();
ob_flush();
}
?>
我的问题是不是让时间()按时间间隔回响,而是得到一个等于loopCount * loopSleep的总延迟,然后所有内容立刻回响。我已经看过关于这类事情的其他帖子,并且使用flush()似乎可以解决大多数人 - 不过我。
任何帮助表示赞赏
答案 0 :(得分:2)
试试这个:
ob_start();
for ( $i = 0; $i < $loopCount; $i++) {
sleep($loopSleep);
echo time();
ob_flush();
flush();
}
答案 1 :(得分:0)
如果您的网络服务器认为它会以这种方式获得更有效的传输,那么它可能会自行缓冲。也许你可以关闭它,但它可能不是生产中最有效的。