Javascript,图像不';除非先运行alert(),否则不能在睡眠时更改

Javascript,图像不';除非先运行alert(),否则不能在睡眠时更改,javascript,alert,sleep,Javascript,Alert,Sleep,我有一个图像,当我把它放到一个画框里时,它会改变颜色 一旦有人把它丢进盒子里,我就进入下一个屏幕。 但我想先等一会儿 但是当我介绍等待。。 图像不会改变颜色。。即使它确认颜色更改代码已运行 但是。。如果我设置了警报(“hi”);在停止发动机的代码之前。。然后在等待会话之前进行颜色更改 这就好像是警报();是在幕后做一些事情,使div的颜色变化正确发生 在运行sleep方法之前,如何强制进行此颜色更改 有点像运行警报,而不必让警报实际弹出。没有睡眠方法,所以我猜您正在使用while循环来进行“睡眠

我有一个图像,当我把它放到一个画框里时,它会改变颜色

一旦有人把它丢进盒子里,我就进入下一个屏幕。 但我想先等一会儿

但是当我介绍等待。。 图像不会改变颜色。。即使它确认颜色更改代码已运行

但是。。如果我设置了警报(“hi”);在停止发动机的代码之前。。然后在等待会话之前进行颜色更改

这就好像是警报();是在幕后做一些事情,使div的颜色变化正确发生

在运行sleep方法之前,如何强制进行此颜色更改


有点像运行警报,而不必让警报实际弹出。

没有睡眠方法,所以我猜您正在使用while循环来进行“睡眠”。while循环会锁定浏览器并阻止页面更新。该警报会增加一点延迟,并允许页面更新

您需要做的是分解代码,并使用setTimeout进行“睡眠”


显示一些代码会很有用。警报停止所有执行JavaScript中没有“sleep”方法。如果你是自己写的,那么问题几乎肯定是你在“忙着等待”(做一个紧循环,固定CPU)。您可能希望改为
setTimeout
,它可以将某些内容安排在以后运行,而无需等待,从而允许其他事情(例如,更改图像)发生。:-)
var img = document.getElementById("myImg");
img.src = "foo.gif";
function nextStep() {
    alert("do your next step here");
}

window.setTimeout(nextStep, 2000); //2 seconds