我尝试制作循环(有条件),但我不想立即看到结果。我希望看到每行显示一秒钟的结果。
第二个1 =第1行,第二个第2行=第2行(第1行仍然可见),第二个3 =第3行(第1行,第2行仍在那里,依此类推......)
首先,PHP脚本应该循环(30行,因为条件需要$ i <= 30),之后,开始以每行一秒的间隔显示结果。否则mt_rand()会使结果变得一团糟。
循环示例:
for ($i=1; $i<=30; $i++) {
$roll = mt_rand(1,3);
if ($roll=="1") {echo "1 <br />\n";}
elseif ($roll=="2") {echo "2 <br />\n";}
else {echo "3 <br />\n"; }
我试图找到一些非常简单和功能的东西,没有jQuery,没有毫无意义的长代码,而是简单的短脚本。我的JS技能很低,所以我想请你们帮忙。你能救我吗?
答案 0 :(得分:0)
您在寻找sleep()
功能吗?在执行下一个语句之前需要等待几秒钟。也改变了你的1-2-3逻辑,条件似乎没有必要。
for ($i=1; $i<=30; $i++) {
$roll = mt_rand(1,3);
sleep(1);
echo $roll." <br />";
}
答案 1 :(得分:0)
您可以在每行后暂停PHP一秒钟,并在每次唤醒时刷新输出缓冲区:
for ($i=1; $i<=30; $i++) {
$roll = mt_rand(1,3);
if ($roll == "1")
echo "1 <br />\n";
else if ($roll == "2")
echo "2 <br />\n";
else
echo "3 <br />\n";
// Flush the output buffer
ob_flush();
// Sleep for one second
sleep(1);
}
有必要调用ob_flush()
因为PHP缓冲输出,所以简单的睡眠会延迟页面输出,但它仍然会在浏览器中同时出现。
执行此操作时,请注意您的脚本执行时间可能比PHP允许的最长执行时间长。 您可以在代码中设置此限制:
set_time_limit(90); // Maximum execution time is 90 seconds
set_time_limit(0); // No execution time limit
或在你的php.ini文件中:
max_execution_time = 90
答案 2 :(得分:0)
我使用setTimeout()函数。 https://developer.mozilla.org/en/docs/Web/API/window.setTimeout
答案 3 :(得分:0)
嗯,setTimeOut()的问题是当执行第一个oneNumber()函数时,循环结束,y = 31。我认为当你调用setTimeOut()函数时会有一种修改变量值的方法,但是我没有找到它。 这是我发现的唯一方法:
<!DOCTYPE html>
<body>
<?php
for ($i=1; $i<=30; $i++) {
$roll = mt_rand(1,3);
if ($roll==1) {echo '<b id="b'.$i.'" style="display: none;"> 1</b>';}
elseif ($roll==2) {echo '<b id="b'.$i.'" style="display: none;"> 2</b>';}
else {echo '<b id="b'.$i.'" style="display: none;"> 3</b>';}
}
?>
<script>
window.onload = function () {
window.setTimeout(function() {
document.getElementById('b1').style.display="block";
},1000)
window.setTimeout(function() {
document.getElementById('b2').style.display="block";
},2000)
window.setTimeout(function() {
document.getElementById('b3').style.display="block";
},3000)
window.setTimeout(function() {
document.getElementById('b4').style.display="block";
},4000)
window.setTimeout(function() {
document.getElementById('b5').style.display="block";
},5000)
window.setTimeout(function() {
document.getElementById('b6').style.display="block";
},6000)
window.setTimeout(function() {
document.getElementById('b7').style.display="block";
},7000)
window.setTimeout(function() {
document.getElementById('b8').style.display="block";
},8000)
window.setTimeout(function() {
document.getElementById('b9').style.display="block";
},9000)
window.setTimeout(function() {
document.getElementById('b10').style.display="block";
},10000)
window.setTimeout(function() {
document.getElementById('b11').style.display="block";
},11000)
window.setTimeout(function() {
document.getElementById('b12').style.display="block";
},12000)
window.setTimeout(function() {
document.getElementById('b13').style.display="block";
},13000)
window.setTimeout(function() {
document.getElementById('b14').style.display="block";
},14000)
window.setTimeout(function() {
document.getElementById('b15').style.display="block";
},15000)
window.setTimeout(function() {
document.getElementById('b16').style.display="block";
},16000)
window.setTimeout(function() {
document.getElementById('b17').style.display="block";
},17000)
window.setTimeout(function() {
document.getElementById('b18').style.display="block";
},18000)
window.setTimeout(function() {
document.getElementById('b19').style.display="block";
},19000)
window.setTimeout(function() {
document.getElementById('b20').style.display="block";
},20000)
window.setTimeout(function() {
document.getElementById('b21').style.display="block";
},21000)
window.setTimeout(function() {
document.getElementById('b22').style.display="block";
},22000)
window.setTimeout(function() {
document.getElementById('b23').style.display="block";
},23000)
window.setTimeout(function() {
document.getElementById('b24').style.display="block";
},24000)
window.setTimeout(function() {
document.getElementById('b25').style.display="block";
},25000)
window.setTimeout(function() {
document.getElementById('b26').style.display="block";
},26000)
window.setTimeout(function() {
document.getElementById('b27').style.display="block";
},27000)
window.setTimeout(function() {
document.getElementById('b28').style.display="block";
},28000)
window.setTimeout(function() {
document.getElementById('b29').style.display="block";
},29000)
window.setTimeout(function() {
document.getElementById('b30').style.display="block";
},30000)
}
</script>
</body>
</html>