我有一个使用许多图像的 javascript,我想在用户开始点击之前将它们全部加载。图像有点大,所以需要一段时间。这是我的代码:
startTest();
function preloadImages() {
console.log("preload images");
for(var i = 1; i <= 132; i++) {
var img = new Image();
images[i-1] = "images/"+i+".png";
img.src = images[i-1];
if(i == 132) {
img.load = doneLoading();
}
}
}
function doneLoading() {
console.log("done loading");
document.getElementById("laading").style.display = "none";
console.log("loading gone");
showReady();
}
function startTest() {
console.log("start test");
trialCount = 0;
document.getElementById("laading").style.display = "block";
preloadImages();
var hammertime = Hammer(document.body).on("touch", function(event) {
registerTouch(event);
});
startTestTime = +new Date();
console.log("end start test");
}
如您所见,startTest()
首先调用的是预加载图像。这是问题所在:当我在浏览器中加载页面时,javascript控制台指示"done loading"
已打印,但是浏览器选项卡上的转轮显示网页仍在加载...
这里发生了什么?加载完所有图像后,如何确定?