javascript 在一个循坏里调用settimeout为什么没有出现延迟?
发布网友
发布时间:2022-05-04 16:42
我来回答
共2个回答
热心网友
时间:2022-06-24 02:30
循环是在瞬间完成的,也就是在瞬间启动三个计时器(时间间隔不会超过1毫秒),就好像发令*响,三个人同时起跑。Javascript的计时器无法精确到8毫秒以内(不记得哪里看到了,也许随着平台改进会有所提升,但别指望能区分1-2毫秒),因此三个alert同时执行可能出现先后。
这与你循环中直接调用alert不同。因为alert会暂停for循环,等关闭alert后执行下面代码。
最好设置不同时值,间距大于10毫秒。你试试这样写
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
function testAnonymous() {
var aa = 0;
var bb = 1;
for(var i = 0; i < 3; i++) {
aa++;
bb++;
setTimeout('alert('+aa+')',1000+aa*10);
//setTimeout(function(){return testDisplay(aa,bb);},1000);
}
}
testAnonymous()
</script>
热心网友
时间:2022-06-24 02:31
去掉for,用setInterval