Javascript является однопоточным.Если вы хотите, чтобы второй счетчик использовал setTimeout
и не выходил из строя из-за JavaScript, я предлагаю вам использовать объект Date.Сделайте следующее:
var startTime = 0;
function Count() {
document.timerform.clock.value = Math.round((new Date().getTime() - startTime)/1000);
down = setTimeout(Count, 1000);
}
function timeIt() {
startTime = new Date().getTime();
Count();
}
Тогда, даже если у вас есть событие, которое берет на себя управление потоком javascript, вы не будете сбрасывать счет, как только счет возобновится.Вы по-прежнему хотите избегать таких ситуаций, но никогда не рассчитывайте, что setTimeout будет точным временем, которое вы установили.