我正在将大量图像加载到动态 DIV 中,并且正在使用预加载器来获取图像。
imageObj = new Image();
imageObj.src = imgpath + imgname;
这些事件中的每一个都会创建一个我可以在 Firebug 中查看和监视的 GET。
如果我知道图像的名称和路径,我可以查看相关的 XMLHttpRequest 以查看 GET 是否已完成?
我不想在这个过程中依赖(或使用).onload 事件。
伪看起来像这样......
if (imageObj.GET = 'complete')
有没有人有这方面的经验?
编辑 1
感谢 Bart 的帮助(见下文),我更改了图像预加载器以存储图像对象数组...
function imagePreLoader(imgname) {
images[imgnum] = new Image();
images[imgnum].src = imgpath + imgname;// load the image
imgnum ++;
}
然后,在我的所有其他函数都运行以构建内容 DIV 之后,我在下面使用了 image.complete 属性......
var interval = setInterval(function () {
imgcount = imgnum - 1; // because the imgnum counter ++ after src is called.
ok = 1;
for (i=0; i<imgcount; i++) {
if (images[i].complete == false){
ok = 0;
}
}
if (ok == 1) {
clearInterval(interval);
showIndexOnLoad();
}
}, 1000);
这会等到所有图像都完成,并且只有showIndexOnLoad()
当我从间隔函数中获得“确定”时才会触发该函数。
现在,所有图像都按我的意愿显示,一次全部显示,无需额外等待 GET 赶上。
干得好 Bart 让我了解image.complete属性。