2011-04-07 63 views
0

我正在使用setTimeout在iOs和mobile-safari上使用JavaScript进行一些动画。mobile-safari javascript:multiple setTimeouts或setIntervals

它似乎虽然当我有两个超时定义在同一时间,较短的一个没有得到执行,直到较长的一个得到。

setTimeout(a, 1000); 
setTimeout(b, 300); 

//it seems that both a and b will be called after 1000ms. 

相同,似乎在使用setInterval

发生的是一个已知的问题? 如果是,是否有解决方法?

谢谢!

回答

2

这不是它应该发生的方式......我怀疑你可能在别处遇到问题。

你可以做个试验一些不同的浏览器:​​

HTML:

<a href="#" onclick="timetest()">Test</a> 
<div>First fired at <span id="resultA"></span></div> 
<div>First fired at <span id="resultB"></span></div> 

JS:

function timetest() { 
    setTimeout(function() { 
     document.getElementById("resultA").innerText = "a:" + new Date().getTime(); 
    }, 1000); 
    setTimeout(function() { 
     document.getElementById("resultB").innerText = "b:" + new Date().getTime(); 
    }, 30); 
} 

在Chrome中点击测试后,我看到:

First fired at a:1302168904051 
First fired at b:1302168903081 

我在移动Safari中看到类似的结果。