我有一个网站,显示约20自动播放幻灯片(每个包含4-5图像)在一个页面的列表。现在的问题是,这需要很长的时间来加载网站(当然会,因为有这么多图像),但我希望优先加载所有必要的css和js文件,以便在图像开始下载之前正确呈现页面上的其他组件。
所以..。有没有办法设置请求资源加载的优先顺序?
发布于 2011-09-30 04:19:34
有没有办法设置加载所请求资源的优先顺序
是-将它们按该顺序放入HTML文件中!
我想优先加载所有必要的css和js文件,以便页面上的其他组件在图像开始下载之前被正确渲染。
这是一个不同的问题。
在知道大多数元素的尺寸之前,无法正确呈现页面组件。因此,如果页面布局中有其他图像,则需要首先加载这些图像,或者在标记中指定它们的宽度和高度属性。
由于您的幻灯片图像将与布局的其余部分混合在一起,如果您使用纯HTML加载它们,听起来您别无选择,只能根据其他评论和答案从Javascript加载所有幻灯片图像。
发布于 2011-09-30 04:43:04
更好的方法是使用dom创建元素,让您的div甚至img标记src为空,然后使用innerHTML在onload函数中加载您想要的图像:
function images(){
var place_to_put_image = document.getElementById("image_div");
place_to_put_image.innerHTML = "<img src=\"your_image_here\"></img>";
}
<body onload="images()>
<div id="image_div></div>
</body>
你可以把你的图像放在一个数组中,如果你想把它们都放在同一个地方,你可以把div的innerHTML或者其他任何东西都赋给这个数组,或者你可以把onload放在div或者你想要加载图像的任何地方。
发布于 2011-09-30 04:43:35
有几种方法可以做到这一点,但它们都不是真正将图像放入HTML中-至少不是正确的。我喜欢这样做的一种方式是将图像src
URL添加到另一个属性,如alt
(对于可访问性不是很好)或rel
。此外,为所有图像提供一个类,该类将用于通过JS将其挂钩到图像中。
<img alt="images/foo.jpg" class="loadlater" />
然后在JS中,使用class="loadlater"
获取所有元素,并将源设置为ALT值。
img.src = img.alt;
你没提到jQuery。如果您使用的是jQuery,则交换属性的命令将如下所示:
$('.loadlater').each(function() { this.src=this.alt; });
然后,无论何时何地调用它,图像都会被加载。您需要在css和js完成加载后调用它--可能是document.load
函数。同样,如果您使用的是jQuery,它将如下所示:
$(function()
{
$('.loadlater').each(function() { this.src=this.alt; });
});
https://stackoverflow.com/questions/7602935
复制相似问题