我用setTimeout在iOs和mobile-safari上做了一些javascript动画。
但似乎当我同时定义了两个超时时,较短的超时直到较长的超时才会被执行。
setTimeout(a, 1000);
setTimeout(b, 300);
//it seems that both a and b will be called after 1000ms.同样的情况似乎也发生在setInterval上
这是一个已知的问题吗?如果是,是否有解决方法?
谢谢!
发布于 2011-04-07 17:36:35
事情不应该是这样的.我怀疑你在别的地方可能是个问题。
在一些不同的浏览器中尝试此测试:http://jsfiddle.net/V6Ktd/
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我在Mobile Safari中看到了类似的结果。
https://stackoverflow.com/questions/5578811
复制相似问题