我正在使用JavaScript加载图片。就像这样:
images[0]=new Image();
images[0].onload=function(){loaded++;console.log(loaded)};
images[0].src="assets/img/image.png";
当我查看日志时,我发现所有的图片都已经成功加载,因为"loaded"变量的值随着每个已加载的图片而增加。
但是我想要在此数量达到最大值之前停止任何进一步的操作,所以在设置完图片后,我会放置一个while循环。
while(loaded<11){
document.getElementById("test").innerHTML="Loading "+loaded+"/11";
console.log(loaded);
}
//Some code here which should only run after everything has been loaded
//In other words: when the statement in the while cycle becomes false
然而,我的浏览器崩溃了,因为while循环似乎陷入了死循环。当我检查日志时,我看到“0”被写了1000次,之后是从1到11的数字(这意味着图像实际上已经加载完毕,但while不关心它,比它发生得更快地崩溃)。
我认为我在这里尝试使用的方法并不是解决这个问题的正确方法。
如何将一切暂停,直到站点所需的所有资产都已加载?