1

我正在制作一个“照片墙”,它本质上是一个非常长的页面,由许多缩略图照片组成。照片是出现在页面上的主要原因,所以我希望它们在页面加载时已经加载。我想知道是否可以在登录页面 (index.php) 上预加载它们,但我想知道这是否会减慢主页速度。有人可以让我深入了解此预加载功能的工作原理。主页加载会慢吗?主页会不会因为后台要加载很多东西而在其他操作中滞后?

(我只是这样做,看看会发生什么,但我无法准确测试网站的速度。因此,我想提前知道什么会起作用。)

我在这里使用 CS6 Adob​​e Dreamweaver 的内置预加载功能:

function MM_preloadImages() { //v3.0
  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];}}
}

除了我添加自己想要手动预加载的图像(工作正常,我会在此处添加用于未来页面的图像。):

<body 
onload="MM_preloadImages('path/image.gif','path/image2.gif','path/image3.gif')">
4

1 回答 1

0

我会尽量简短地回答。

是的,它会减慢您的网页速度,因为您将在后台加载图像。不,您的大多数访问者都不会注意到您仍在后台加载图像。

该函数的作用是在后台将图像从您的服务器加载到浏览器。Dreamweaver 使用此功能实现图像翻转效果,此效果将一张图像替换为另一张图像,并且 Dreamweaver 为您提供了在后台下载此图像的选项,以使页面看起来更具响应性。诀窍很简单,你有图像 A.jpg,当鼠标经过它时,它会用图像 B.jpg 替换它,但是如果浏览器必须下载 B.jpg,页面会显得迟钝,这就是为什么如果预加载图像。

作为一般规则,您不应预加载该页面上未使用或很快不需要的元素。正如您所提到的,如果您有很多图像,您应该尝试找出一种提前请求图像的方法,而不涉及下载所有图像。

有些画廊会考虑您正在查看的图像,然后提前下载以下 2 或 3 张图像。对于多张图片,这是一种更好的方法,您不希望访问者预加载 250 张图片只是为了发现他们只观看 2 或 3 张图片。如果您决定实现此功能,您只需要使用 url 调用 MM_preloadImages 函数您要预加载的图像。这并不难,您只需将其附加到加载图像的操作并将其设置为也预加载下一个图像。

于 2013-08-30T22:59:42.333 回答