双螺旋 第一季 下载:关于javascript的一个问题,高手帮忙看看

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/04 08:46:56
以下是代码:

<html>
<head>
<title>SetInterval Page</title>
<script language="javascript" type="text/javascript">
var t = null;
function showInterval(type)
{
var foo = function()
{
clearTimeout(t);
alert(type);
}
t = setTimeout(foo, 1000);
}
</script>
</head>
<body>
<script>
alert('111');
showInterval('chris');
showInterval('aaa');
showInterval('bbb');
alert('222');
</script>
</body>
</html>

按设想应该是在页面执行时首先出111的提示,然后间隔一秒提示chris,再间隔一秒提示aaa,然后间隔一秒提示bbb,最后提示222

但是实际运行效果是输出111、222,然后间隔一秒输出chris、aaa、bbb并且没有时间间隔,请问何解?并且如何才能达到我设想中的运行效果?

按照楼主的意思,时间都在递增,那么你可以在showInterval函数中加一个参数,用于设置时间
如:showInterval(type,tm)
t = setTimeout(foo, 1000); 就可以改为
t = setTimeout(foo, tm);
然后下面的调用可以是:
showInterval('chris',1000);
showInterval('aaa',2000);
showInterval('bbb',3000);
showInterval('222',4000);
不过showInterval里使用的 t就要定义在它里面 了。

肯定是先把 111,222显示出来后才运行 setTimeout的代码!

因为
setTimeout();是当记时一到就执行,但setTimeout以后的代码继续执行,不用等到setTimeout运行完再执行的!这就如多线程中线程一样!