mobile-safari javascript:多个 setTimeouts 或 setIntervals
Posted
技术标签:
【中文标题】mobile-safari javascript:多个 setTimeouts 或 setIntervals【英文标题】:mobile-safari javascript: multiple setTimeouts or setIntervals 【发布时间】:2011-04-07 09:21:42 【问题描述】:我正在使用 setTimeout 在 ios 和 mobile-safari 上使用 javascript 制作一些动画。
似乎当我同时定义两个超时时,较短的一个不会执行,直到较长的一个得到。
setTimeout(a, 1000);
setTimeout(b, 300);
//it seems that both a and b will be called after 1000ms.
setInterval 似乎也是如此
这是一个已知问题吗? 如果是,是否有解决方法?
谢谢!
【问题讨论】:
【参考方案1】:这不是它应该发生的方式......我怀疑你可能在其他地方有问题。
在一些不同的浏览器中尝试这个测试: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 中看到了类似的结果。
【讨论】:
以上是关于mobile-safari javascript:多个 setTimeouts 或 setIntervals的主要内容,如果未能解决你的问题,请参考以下文章
让 WebSocket 在 Mobile Safari 中保持活跃