Javascript代码冻结屏幕设定的时间量

时间:2013-07-25 01:12:06

标签: javascript time freeze

我正在尝试使用以下代码

  1. 显示纸牌游戏的结果,
  2. 在显示倒计时时等待3秒钟,然后
  3. 重新加载屏幕。

    //Display results, at least that was the idea.
    for(var player = 0; player < players.length; player++)
    {
        resultString = players[player][6]
        if (result == null) { resultString += ", its a tie."; }
        else
        {
            resultString += (player == 0 ? ", you" : ", cassino") +
            (player == result ? (player == 0 ? " win" : " wins") :
            (player == 0 ? " lose" : " loses"));
        document.getElementById(player == 0 ? "player" : "casino").
        childNodes[0].nodeValue = resultString;
        }
        showHand(players[player]);
    }
    
    //Lag for 3 seconds while displaying a countdown. At least it lags alright.
    var time = new Date().getTime();
    while (((time / 1000) + 3) - (new Date().getTime() / 1000 ) > 0)
    {
        document.getElementById("call").childNodes[0].nodeValue = "Next round in "
        + Math.ceil(((time / 1000) + 3) - (new Date().getTime() / 1000 ))
        .toFixed(0);
    }
    //Reload screen. Working fine.
    dealHands();
    }
    
  4. 问题是,在加载重新加载屏幕之前,通过运行此代码而不是冻结 3秒钟,即使console.log指出要在“”中显示的值没有问题//显示结果“程序的部分。事实上,如果我在评论“//滞后3秒......”之后评论部分,结果将按预期显示。 是否有一些我不知道的覆盖代码的.time()属性?

1 个答案:

答案 0 :(得分:0)

如果你想在3秒后显示倒计时,你可以把你的代码重新加载到一个函数中的屏幕,并使用window.setTimeout调用该函数,这不会冻结窗口,并且在调用后会调用函数你在那里指定的时间。

对于倒计时显示,您可以使用window.setInterval