带有链接的随机图像,无需加载所有内容

时间:2011-08-27 06:00:42

标签: javascript

我不希望加载所有图像,只需要随机选择一个图像。我无法弄清楚其他图像是否被隐藏但是在后台加载。每张图片都需要附加超链接。

<SCRIPT LANGUAGE="Javascript">
function banner() { } ; b = new banner() ; n = 0
b[n++]= "<a href='#'><img src='main_theme/top_gallery/gallery1.jpg' /></a>"
b[n++]= "<a href='#'><img src='main_theme/top_gallery/gallery2.jpg' /></a>"
b[n++]= "<a href='#'><img src='main_theme/top_gallery/gallery3.jpg' /></a>"
b[n++]= "<a href='#'><img src='main_theme/top_gallery/gallery4.jpg' /></a>"
b[n++]= "<a href='#'><img src='main_theme/top_gallery/gallery5.jpg' /></a>"
i=Math.floor(Math.random() * n) ; 
document.write( b[i] )
</SCRIPT>

2 个答案:

答案 0 :(得分:1)

只应加载所选图像(b[i]中的图像)。在调用document.write之前,您只有简单的未解释字符串,然后您的一个字符串被解释为HTML,浏览器将发现有一个要加载的图像。

您可以清除浏览器缓存并观看网络服务器的访问日志以验证我的声明。

答案 1 :(得分:1)

我认为现有代码没有任何问题。在document.write()调用中只能写入一个图像。其他一切只是内存中的一个字符串。代码可以通过很多方式清理。我建议您将代码更改为:

writeRandomImage(baseURL, max) {
    var rand = Math.floor(Math.random() * max) + 1;
    var str = "<a href='#'><img src='" + baseURL + rand + ".jpg' /></a>";
    document.write(str);
}

writeRandomImage("main_theme/top_gallery/gallery", 5);

这也应该消除对任何其他图像加载的担忧,因为其他URL甚至都没有构建。