Javascript代码将屏幕冻结一段时间



我正在尝试使用以下代码

  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();
    }
    

问题是,通过运行此代码,屏幕在加载重新加载屏幕之前会冻结 3 秒,即使控制台.log指出要在程序的"//显示结果"部分中显示的值没有问题。事实上,如果我评论评论"//滞后 3 秒......">之后的部分结果将按预期显示。是否有我不知道的 .time(( 属性正在覆盖代码?

如果要在

3 秒后显示倒计时,可以将代码以在函数中重新加载屏幕,并使用不会冻结窗口的window.setTimeout调用该函数,并且在您指定的时间后调用函数。

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

最新更新