我有一个比较独特的问题。有一个Web应用程序,需要加载5.57MB。我想在其中加入一个Loading Bar或Ajax Spinner,以便在大约10-20秒的加载时间内向用户呈现进度条动画。其中包含了许多图片和JS。问题在于,Firefox可以正确地对所有内容进行线程处理,因此动画GIF可以持续运行。一切都很顺利。但是IE只会加载旋转器的前几帧,然后就会卡住,直到网站完全加载完成。而且,当未缓存时,它还会锁定浏览器。它会在加载完成后显示页面,但不管是缓存还是未缓存,旋转器都会在第一帧停止。这种情况在Firefox、Safari或现代浏览器中并没有发生,只有IE出现了这个问题。有没有办法使IE也能够顺利加载?目前的研究尚未找到任何解决方案。
加载器代码(按要求提供):请注意,由于代码量较大,很难进行改写,但是以下内容似乎涵盖了这个困境。
加载器代码(按要求提供):请注意,由于代码量较大,很难进行改写,但是以下内容似乎涵盖了这个困境。
<script type="text/javascript">
function show_main_gui() {
dojo.byId("splashloader").style.visibility = "hidden";
}
function init(){
show_main_gui();
}
dojo.addOnLoad(init);
</script>
<style type="text/css">
#splashloader {
position:absolute;
z-index:999;
width:800px;
visibility:visible;
height:600px;
background:#fff;
text-align:center;
color:#1E4FD9;
}
</style>
<table id="splashloader"><tr><td><img src="images/interface/splashloader.gif"><span class="loader"> Loading...</span></td></tr></table>
一张表格...在所有浏览器中更容易垂直对齐。
IE 8和7仍然存在加载gif动画冻结的问题。如果我将旋转器更改为在加载后显示,则动画会动起来。我尝试除此之外删除所有JavaScript调用,并在缓存上加载,但在1-2秒的加载过程中IE仍然只显示前几帧。
style.visibility = "hidden"
只会隐藏内容,但保留它所占据的空间为页面上的空白区域。而将style.display = "none"
设置后,将会完全移除元素,就好像它从未存在过一样。 - awe