Javascript—我在while循环中的setTimeOut不';行不通
我想做这样的事情:Javascript—我在while循环中的setTimeOut不';行不通,javascript,Javascript,我想做这样的事情: <p id="sec">5</p> <script> var i = 5; while (i > 0){ setTimeout(i--,1000); document.getElementById("sec").innerHTML = i; } if (i === 0){ window.location = "index.php"; } </script> 5 var i=5; 而(i>0){ 设
<p id="sec">5</p>
<script>
var i = 5;
while (i > 0){
setTimeout(i--,1000);
document.getElementById("sec").innerHTML = i;
}
if (i === 0){
window.location = "index.php";
}
</script>
5
var i=5;
而(i>0){
设置超时(i--,1000);
document.getElementById(“sec”).innerHTML=i;
}
如果(i==0){
window.location=“index.php”;
}
没有一秒钟,它就将我重定向到index.php?为什么会这样?如何使其工作?
setTimeout
有时会执行一个函数,并立即返回。将setTimeout替换为:setTimeout(alert(“hi!”),1000
你就会明白到底发生了什么。PS:删除重定向,只是为了测试。@TheBronx“秒”保持在5?!抱歉,我不明白。您必须明白setTimeout不会停止脚本的执行。它不像“睡眠”功能。一个更简单的例子,两行:setTimeout(function(){alert(“timeout finished!”)},5000);警惕(“嘿,不要等待”)
查看发生了什么,哪个警报首先出现?setTimeout
有时会执行一个函数,并立即返回。将setTimeout替换为:setTimeout(警报(“hi!”),1000
你就会明白到底发生了什么。PS:删除重定向,只是为了测试。@TheBronx“秒”保持在5?!抱歉,我不明白。您必须明白setTimeout不会停止脚本的执行。它不像“睡眠”功能。一个更简单的例子,两行:setTimeout(function(){alert(“timeout finished!”)},5000);警惕(“嘿,不要等待”)代码>查看发生了什么,哪个警报首先出现?我尝试了,但sec也保持在5。在这里工作正常:+1,这是最好的答案,因为它不会锁定CPU。也因为你的名字叫保罗。这也可以通过使用window.setInterval
@DanielCheung来实现。请检查javascript控制台中的errors@PaulS. 有些人避开我试过的设置间隔,但sec也保持在5。在这里可以正常工作:+1,这是最好的答案,因为它不会锁定CPU。也因为你的名字叫保罗。这也可以通过使用window.setInterval
@DanielCheung来实现。请检查javascript控制台中的errors@PaulS. 有些人回避设置间隔
var i = 5;
setTimeout(updateTime,1000);
function updateTime()
{
document.getElementById("sec").innerHTML = i--;
if (i === 0)
window.location = "index.php";
else
setTimeout(updateTime, 1000);
}