【发布时间】:2011-03-26 06:56:40
【问题描述】:
在我认为这个项目已经完成之后,我刚刚发现了一个问题。它在我的本地服务器上运行良好,但是当我实时推送代码时,图像可能需要半秒钟才能正确加载,导致在加载图像上弹出一个小页面缩略图。呸呸呸
那么发生了什么?好吧,首先在window.load 上运行一个函数,它创建了大量列表项,其中加载 gif 作为 bg 图像。
然后这个函数将<img>标签弹出到第一个列表项中,onload调用第二个函数
第二个函数循环遍历一个 XML 文件并将 xml 中的 URL 包装在一个 <img> 标记中,并将其放入下一个空的 LI 中。这就是问题所在。目前它在实际加载之前将<img src=$variable onload=loadnextimage() /> 放入列表项。
我的代码:
$(window).load(function() {
txt="";
for(d=0;d<100;d++)
{
txt=txt + "<li class='gif' id='loading"+d+"'></li>";
}
document.getElementById('page-wrap').innerHTML=txt;
document.getElementById('loading0').innerHTML="<img src='images/0.jpg' onLoad='loadImages(0)' />";
});
function loadImages(i){
i++
$.ajax
({
type: "GET",
url: "sites.xml",
dataType: "xml",
async: "true",
success: function(xml)
{
var img = $(xml).find('image[id=' + i + ']'),
id = img.attr('id'),
url = img.find('url').text();
$('#loading'+i).html('<img src="'+url+'" onLoad="loadImages('+i+')" />').hide();
$('#loading'+i).fadeIn();
}
});
}
我觉得如何设置它可能会很棘手,我觉得我可能需要创建一个 img 对象并等待它加载???
一旦页面被缓存,加载显然工作正常,但在他第一次加载时有点痛苦,所以我需要解决这个问题。 欢迎任何建议:)谢谢
【问题讨论】: