JavaScript мобильного-сафари: несколько setTimeouts или setIntervals - PullRequest
0 голосов
/ 07 апреля 2011

Я делаю некоторые анимации с помощью javascript для iOs и mobile-safari, используя setTimeout.

кажется, однако, что, когда у меня определены два тайм-аута одновременно, более короткий не выполняется до более длинногополучает.

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

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

похоже, то же самое происходит с setInterval

это известная проблема?если да, есть ли обходной путь?

спасибо!

1 Ответ

2 голосов
/ 07 апреля 2011

Это не так, как должно происходить ... Я подозреваю, что вы можете столкнуться с проблемой в другом месте.

Попробуйте этот тест в нескольких разных браузерах: 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.

...