我有以下代码:
<?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();
}
?>
我的问题是不是让time()每隔一段时间就回显一次,而是得到一个等于loopCount * loopSleep的总延迟,然后所有东西都一次回显出来。我看过其他关于这类事情的帖子,使用flush()似乎可以解决大多数人的问题-尽管不是我。
感谢您的帮助
试试这个:
ob_start();
for ( $i = 0; $i < $loopCount; $i++) {
sleep($loopSleep);
echo time();
ob_flush();
flush();
}
你的web服务器可能会缓冲自己,如果它认为它会得到更多efficiënt传输的方式。也许你可以关闭它,但它在生产中可能不是最有效的。