Javascript 使用「;设置超时“;若要重复此功能,浏览器将显示";“正在加载…”;消息
我有这个横幅旋转,这是工作良好,除了一个问题 这个旋转器首先遍历函数,当它到达“setTimeout”语句时,它会一次又一次地触发“cycle”函数 你们可能知道Firefox的左下角有一个状态栏,上面写着“正在加载”或“正在等待domain.com…”等等 问题是,;当您在Firefox中进入网站时,状态栏显示“已加载”,然后显示。8秒后(设置超时延迟),状态栏再次显示,并显示类似“从domain.com获取数据…”。它不会消失。 此消息很可能是由Javascript 使用「;设置超时“;若要重复此功能,浏览器将显示";“正在加载…”;消息,javascript,jquery,html,security,browser,Javascript,Jquery,Html,Security,Browser,我有这个横幅旋转,这是工作良好,除了一个问题 这个旋转器首先遍历函数,当它到达“setTimeout”语句时,它会一次又一次地触发“cycle”函数 你们可能知道Firefox的左下角有一个状态栏,上面写着“正在加载”或“正在等待domain.com…”等等 问题是,;当您在Firefox中进入网站时,状态栏显示“已加载”,然后显示。8秒后(设置超时延迟),状态栏再次显示,并显示类似“从domain.com获取数据…”。它不会消失。 此消息很可能是由setTimeout代码引起的,该代码反复触发
setTimeout
代码引起的,该代码反复触发功能循环
有没有办法“解决”这个问题
这可能也发生在其他浏览器中,但到目前为止,我只在FF中进行了测试
function ban_rot(){
//First preload images
// counter
var i = 0;
// create object
imageObj = new Image();
// set image list
images = new Array();
images[0] = "../Graphics/adv/1.gif"
images[1] = "../Graphics/adv/2.jpg"
// start preloading
for (i = 0; i <= images.length; i++) {
imageObj.src = images[i];
}
///////////////////////
var links = new Array("http://www.link1.com", "http://www.link2.se");
var alts = new Array("alt1", "alt2");
var titles = new Array("title1", "title2");
var counter = 0;
var banner_div = document.getElementById("ban_rot");
cycle();
function cycle() {
if (counter == links.length) {
counter = 0;
}
else if (counter < links.length) {
banner_div.innerHTML = '<a href=\"' + links[counter] + '\"><img src=\"' + images[counter] + '\" border=\"1px\" style=\"border-color:#000;\" alt=\"' + alts[counter] + '\" title=\"' + titles[counter] + '\"></a>';
//increase counter
counter++;
}
setTimeout(cycle, 8000);
} //end cycle function
} //end ban_rot function
函数ban_rot(){
//首先预加载图像
//柜台
var i=0;
//创建对象
imageObj=新图像();
//设置图像列表
images=新数组();
图像[0]=“./Graphics/adv/1.gif”
图像[1]=“./Graphics/adv/2.jpg”
//开始预加载
对于(i=0;i浏览器显示加载指示器,因为您正在使其加载新图像。您的代码仍然具有setInterval()
;)哦,对不起,我实际上已将其更改为SetTimeout:)…立即更新Q,但为什么在加载映像后它不消失?此外,映像已预加载,因此为什么要从服务器加载映像?如果删除映像,是否仍会发生此情况?糟糕,我注意到错误…似乎是“for(I=0;I