预加载图像减慢页面加载

时间:2011-04-01 12:00:22

标签: javascript jquery image preloading

我有一个内置于jquery的幻灯片,它将图片网址存储在一个数组中。当您单击下一个按钮时,它会向服务器发送一个请求以获取图像,然后显示它。这可以工作,但图像一旦被检索就会从上到下逐渐加载。我通过添加以下代码解决了这个问题......

//Preload background images
            function MM_preloadImages() { 
              var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
                var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
                if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
            }
            MM_preloadImages(<%= preloadImages %> );

现在的问题是第一张图片需要很长时间才能加载。我虽然页面会加载第一张图像,然后其他人在后台的预加载功能中加载?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

好吧,我们无法确定您发布的代码中预加载的顺序,但您可以将代码更改为仅在当前页面加载完成后运行MM_preloadImages。

那就是说,看起来你正在预先加载所有图像。为什么不预先加载下一个或两个图像,并在每次幻灯片放映时继续这样做?这样,当用户尝试转到下一张幻灯片时,浏览器仍然没有忙于尝试加载整个节目。