Самоочевидно, НО не работает …
Просто хочу повторять $ j каждую секунду …
ob_implicit_flush();
ob_end_flush();
ob_start();
for ($j=0;$j<=9;$j++){
echo $j.'<br>';
flush();
ob_flush();
sleep(1);
}
Любая идея ?
Буфер 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>
Других решений пока нет …