您遇到的問題是PHP代碼在請求頁面時在服務器上執行..
因此,在將HTML發送到用戶瀏覽器之前,sleep()函數會導致暫停。
這有道理嗎?
要使頁面以增量輸出您的值,您需要使用客戶端腳本
(如JavaScript)。
你可以做這樣的事情..
<?php
$roll=rand(1, 6);
$time=0;
echo'<script>';
for($i=0;$i<$roll;$i++){
echo'
setTimeout(function(){document.write("<div>'.rand(1,6).' & '.rand(1,6).'</div><br/>")},'.$time.');';
$time+=2000;}
echo '
</script>';
?>
(中回聲命令換行符幫助你輸出的JavaScript是從源讀取)
如果$輥= 3 /看起來會這樣
<script>
setTimeout(function(){document.write("<div>3 & 4</div><br/>")},0);
setTimeout(function(){document.write("<div>1 & 2</div><br/>")},2000);
setTimeout(function(){document.write("<div>4 & 1</div><br/>")},4000);
</script>
但是如果你要記住你的骰子值,你需要將它們放在一個數組..
for($i=0;$i<$roll;$i++){
$dice[$i]=array(rand(1,6),rand(1,6));
echo'
setTimeout(function(){document.write("<div>'.$dice[$i][0].' & '.$dice[$i][1].'</div><br/>")},'.$time.');';
$time+=2000;}
當您在控制檯,而不是瀏覽器中運行,會發生什麼?它是否按預期工作? – Drahcir
showDice函數做了什麼? – jornane