var i = 1;
var timer = setInterval(function() { alert(i) }, 20);
setInterval(function() { alert('test') }, 3000);
В данном коде раз в 3 секунды alert выдаёт 'test', всё остальное время - число 1.
1. Если сделать паузу при отображении alert'ом строки 'test', наложение вызовов мне вроде бы ясно: 1) следующий alert отобразит 1, следующий - 'test', далее наложения нет.
2. Если сделать паузу при отображении alert'ом числа 1, то следующий alert отобразит строку 'test'.
Почему? Ведь по идее, следующим должен быть запланирован запуск этой же ф-ции (она становится в очередь один раз через 20мс) и только через 2800 секунды - запуск ф-ции, выдающей строку 'test'.
Изначально я подумал, что, раз alert с числом активен, то соответствующая ф-ция уже вроде как стоит в очереди. Но в примере из статьи в учебнике (
http://learn.javascript.ru/settimeou...в-setinterval) видно, что это не так:
<input onclick="clearInterval(timer)" type="button" value="Стоп">
<script>
var i = 1;
var timer = setInterval(function() { alert(i++) }, 2000);
//если немного подождать, alert блокирует работу скрипта,
//но эта же ф-ция всё равно становится в очередь (хоть и 1 раз)
</script>