由于 .onload 中异步执行的性质,Javscript 不会按照代码中出现的顺序运行。在我从 如何在加载所有图像后发出警报时学习以下片段?不会总是工作,在这里通过并在那里失败,这一切都取决于浏览器执行的顺序。任何建议如何解决它?(请不要使用 jQuery,也不要问我为什么)
var imgLoaded = 0;
var imgToLoad = 10;
var onImgLoad = function()
{
imgLoaded++;
if(imgLoaded == imgToLoad)
{
alert("done"); //Call to our draw function
}
}
for(var i = 0; i < 10; i++)
{
images[i] = new Image();
images[i].onload = onImgLoad;
images[i].src = 'images/'+i+'.png';
}
具体来说,这里是代码失败的地方:
imgLoaded++;
if(imgLoaded == imgToLoad) { }
因此,有时即使所有图像都已正确加载,IF 条件中的代码也可能无法执行。