2014-05-05 53 views
1

我正在使用jquery显示一个图形,需要6到7秒才能加载,所以在那个时候我必须显示图像加载器。在图形加载之前,图像加载器必须至少显示5秒,但其显示仅为1秒。ImageLoader显示不超过1秒

JS:

$(function() { 
    /** image loader displaying for a sec */ 
    $('#graph').html('<img src="images/loader.gif">');  

    $('#graph').load(function() { 
     //data of graph 
    }); 
}); 

HTML:

<div id="graph"></div> 

回答

2
$(document).ready(function(){ 
    $('#graph').html('<img src="images/loader.gif">'); // image loader displaying 
    setTimeout(function(){ 
     $('#graph').html('Loaded') 
    },5000); 
}); 
+0

Rohit Batham感谢您的回答。我不能在这里使用setTimeout函数,因为如果网络很慢,图表可能需要超过10到15秒。 – user2721624

2

#graph的含量由.load()方法被立即更换。我建议你做一个装载机DIV如.graphLoader,然后加载图形数据到一个隐藏#graph DIV然后您可以取消隐藏#graph时加载在同一时间躲在.graphLoader

这里完全是一个工作的演示上的jsfiddle http://jsfiddle.net/suNK5/

CSS:

.graphLoader { 
    display:block; 
} 
#graph { 
    display:none; 
} 

HTML:

<div class="graphLoader">Graph loading...</div> 
<div id="graph"></div> 

JAV ASCRIPT:

$(document).ready(function() { 
    $("#graph").load("someGraphURL", function() { 
     $('#graph').toggle(); 
     $('.graphLoader').toggle(); 
    }); 
});