自我解释但不工作......
只想每1秒回复$ j ......
ob_implicit_flush();
ob_end_flush();
ob_start();
for ($j=0;$j<=9;$j++){
echo $j.'<br>';
flush();
ob_flush();
sleep(1);
}
有什么想法吗?
答案 0 :(得分:3)
PHP的缓冲区只是其中之一。
服务器可能正在缓冲输出,而某些浏览器会缓冲输入,因此它不会尝试为接收到的每个字节重新呈现整个页面。
作为一般规则,您应该从不在浏览器将调用的任何内容中使用sleep
,因为这只是要求被DoS攻击,真的......
所以基本上这个答案是告诉你“不要那样做”。肯定有更好的方法来做你正在做的事情,从简单的JavaScript开始:
<div id="counter"></div>
<script type="text/javascript">
(function() {
var count = 0, box = document.getElementById('counter');
function step() {
box.appendChild(document.createTextNode(count));
box.appendChild(document.createElement('br'));
count++;
if( count <= 9) setTimeout(step,1);
}
step();
})();
</script>