我有一个JavaScript使用许多图像,并且我想在用户开始点击前加载它们。图像有点大,所以需要一段时间。这里是我的代码: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"
已经打印,但是spinny轮在浏览器选项卡上显示该网页仍在加载...
这是怎么回事在这?一旦我的所有图像完成加载,我怎么才能弄清楚?
可能重复[加载特定图像之前其他](http://stackoverflow.com/questions/7511352/load-specific-image-before-anything-else) – Shea
有一件事:你不应该认为最后你创建的图像是最后一个要完成的图像('img.load = doneLoading();'应该可以为所有图像完成,然后检查它是否被调用了132次) – fiddler